mirror of
https://github.com/believethehype/nostrdvm.git
synced 2025-09-27 23:56:27 +02:00
Update FilterGeneration.vue
This commit is contained in:
@@ -392,7 +392,7 @@ async function listen() {
|
|||||||
for (let ptag of event_ptags) {
|
for (let ptag of event_ptags) {
|
||||||
const eventid = ptag[1]
|
const eventid = ptag[1]
|
||||||
entries.push(eventid)
|
entries.push(eventid)
|
||||||
console.log(eventid)
|
//console.log(eventid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -875,6 +875,75 @@ async function zap_local(invoice) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function mute_all(results){
|
||||||
|
console.log(results)
|
||||||
|
let client = store.state.client
|
||||||
|
let signer = store.state.signer
|
||||||
|
let publicKey = store.state.pubkey
|
||||||
|
|
||||||
|
let mute_filter = new Filter().author(publicKey).kind(10000)
|
||||||
|
let mutes = await client.getEventsOf([mute_filter], Duration.fromSecs(5))
|
||||||
|
console.log(mutes.length)
|
||||||
|
if (mutes.length > 0) {
|
||||||
|
let list = mutes[0]
|
||||||
|
let id = list.id.toHex()
|
||||||
|
try {
|
||||||
|
let eventasjson = JSON.parse(list.asJson())
|
||||||
|
let content = await (await signer).nip04Decrypt(store.state.pubkey, list.content)
|
||||||
|
let jsonObject = JSON.parse(content)
|
||||||
|
console.log(content)
|
||||||
|
|
||||||
|
for (let result of results){
|
||||||
|
console.log(result)
|
||||||
|
|
||||||
|
let exists = false
|
||||||
|
for(let i = 0; i < jsonObject.length; i++)
|
||||||
|
{
|
||||||
|
if(jsonObject[i][1] === result.authorid)
|
||||||
|
{
|
||||||
|
exists = true
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (exists){
|
||||||
|
console.log("already muted")
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
jsonObject.push(["p", result.authorid])
|
||||||
|
store.state.mutes.push(result.authorid)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let newcontent = JSON.stringify(jsonObject)
|
||||||
|
console.log(newcontent)
|
||||||
|
eventasjson.content = await (await signer).nip04Encrypt(store.state.pubkey, newcontent)
|
||||||
|
let newList = new EventBuilder(list.kind, eventasjson.content, list.tags).toUnsignedEvent(store.state.pubkey)
|
||||||
|
|
||||||
|
try{
|
||||||
|
let signedMuteList = await signer.signEvent(newList)
|
||||||
|
//console.log(signedMuteList.asJson())
|
||||||
|
await client.sendEvent(signedMuteList)
|
||||||
|
}
|
||||||
|
catch (error){
|
||||||
|
console.log("Inner " + error)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(error){
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// TODO make new mute list
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
async function mute(result) {
|
async function mute(result) {
|
||||||
let client = store.state.client
|
let client = store.state.client
|
||||||
let signer = store.state.signer
|
let signer = store.state.signer
|
||||||
@@ -1368,19 +1437,27 @@ const submitHandler = async () => {
|
|||||||
<summary class="collapse-title "><div class="btn">Show/Hide Results</div></summary>
|
<summary class="collapse-title "><div class="btn">Show/Hide Results</div></summary>
|
||||||
<div class="collapse-content font-size-0" className="z-10" id="collapse">
|
<div class="collapse-content font-size-0" className="z-10" id="collapse">
|
||||||
<div class="max-w-5xl relative space-y-3">
|
<div class="max-w-5xl relative space-y-3">
|
||||||
<div class="grid grid-cols-1 gap-6">
|
<div class="grid grid-cols-1">
|
||||||
<div v-for="result in dvm.result">
|
<button v-if="dvm.result.length > 0 && dvm.action === 'mute'" @click="mute_all(dvm.result);dvm.result = []
|
||||||
<div v-if="dvm.action === 'mute' && store.state.mutes.find(x => x === result.authorid) === undefined || dvm.action !== 'mute'">
|
store.commit('set_filter_dvms', dvms)"><span class="relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0">
|
||||||
<div v-if="result.active" className="card w-70 bg-base-200 shadow-xl flex flex-col">
|
Mute All
|
||||||
|
</span></button>
|
||||||
|
<br>
|
||||||
|
|
||||||
<div className="playeauthor-wrapper" style="margin-left: 10px; margin-top: 10px">
|
|
||||||
|
<div v-for="result in dvm.result">
|
||||||
|
<div v-if="result.active === true">
|
||||||
|
<div v-if="dvm.action === 'mute' && store.state.mutes.find(x => x === result.authorid) === undefined || dvm.action !== 'mute'">
|
||||||
|
<div v-if="result.active === true" className="card w-70 bg-base-200 shadow-xl flex flex-col">
|
||||||
|
|
||||||
|
<div className="playeauthor-wrapper" style="margin-left: 10px; margin-top: 10px">
|
||||||
<figure className="w-28">
|
<figure className="w-28">
|
||||||
<img className="avatar" v-if="result.event.profile.picture" :src="result.event.profile.picture" alt="DVM Picture" />
|
<img className="avatar" v-if="result.event.profile.picture" :src="result.event.profile.picture" alt="DVM Picture" />
|
||||||
<img class="avatar" v-else src="@/assets/nostr-purple.svg" />
|
<img class="avatar" v-else src="@/assets/nostr-purple.svg" />
|
||||||
</figure>
|
</figure>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<a class="purple" :href="result.authorurl" target="_blank">{{ result.event.profile.name }}</a>
|
<a class="purple" :href="result.authorurl" target="_blank">{{ result.event.profile.name }}</a>
|
||||||
<a v-if="result.event.profile.nip05 !== undefined && result.event.profile.nip05 !== '' " class="purple" :href="result.authorurl" target="_blank">({{result.event.profile.nip05 }})</a>
|
<a v-if="result.event.profile.nip05 !== undefined && result.event.profile.nip05 !== '' " class="purple" :href="result.authorurl" target="_blank">({{result.event.profile.nip05 }})</a>
|
||||||
<!-- <p v-if="isnip05valid(result.event) === true"> Valid</p> -->
|
<!-- <p v-if="isnip05valid(result.event) === true"> Valid</p> -->
|
||||||
</div>
|
</div>
|
||||||
@@ -1390,14 +1467,18 @@ const submitHandler = async () => {
|
|||||||
<div className="justify-end mt-auto" style="margin-left: auto; margin-right: 10px; margin-bottom: 10px" >
|
<div className="justify-end mt-auto" style="margin-left: auto; margin-right: 10px; margin-bottom: 10px" >
|
||||||
<button v-if="dvm.action === 'unfollow'" class="v-Button" @click="unfollow(result);result.active = false; store.commit('set_filter_dvms', dvms)
|
<button v-if="dvm.action === 'unfollow'" class="v-Button" @click="unfollow(result);result.active = false; store.commit('set_filter_dvms', dvms)
|
||||||
"> Unfollow</button>
|
"> Unfollow</button>
|
||||||
<button v-if="dvm.action === 'mute'" class="v-Button" @click="result.active = false; store.commit('set_filter_dvms', dvms)
|
<button v-if="dvm.action === 'mute' && result.active !== false" class="v-Button" @click="result.active = false; store.commit('set_filter_dvms', dvms)
|
||||||
mute(result)"> Mute</button>
|
mute(result)"> Mute</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
</div></div>
|
||||||
|
<div v-if="store.state.mutes.find(x => x === result.authorid) === undefined">
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div style=": inline">
|
<!-- <div style=": inline">
|
||||||
({{ result.event.profile.nip05 }})
|
({{ result.event.profile.nip05 }})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user