forked from indymedia/epicyon
Option to only receive DMs from people you follow
parent
841367fa76
commit
71af23ff6f
14
daemon.py
14
daemon.py
|
@ -3050,18 +3050,32 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
if approveFollowers!=actorJson['manuallyApprovesFollowers']:
|
if approveFollowers!=actorJson['manuallyApprovesFollowers']:
|
||||||
actorJson['manuallyApprovesFollowers']=approveFollowers
|
actorJson['manuallyApprovesFollowers']=approveFollowers
|
||||||
actorChanged=True
|
actorChanged=True
|
||||||
|
# only receive DMs from accounts you follow
|
||||||
|
followDMsFilename=self.server.baseDir+'/accounts/'+nickname+'@'+self.server.domain+'/.followDMs'
|
||||||
|
followDMsActive=False
|
||||||
|
if fields.get('followDMs'):
|
||||||
|
if fields['followDMs']=='on':
|
||||||
|
followDMsActive=True
|
||||||
|
with open(followDMsFilename, "w") as followDMsFile:
|
||||||
|
followDMsFile.write('\n')
|
||||||
|
if not followDMsActive:
|
||||||
|
if os.path.isfile(followDMsFilename):
|
||||||
|
os.remove(followDMsFilename)
|
||||||
|
# this account is a bot
|
||||||
if fields.get('isBot'):
|
if fields.get('isBot'):
|
||||||
if fields['isBot']=='on':
|
if fields['isBot']=='on':
|
||||||
if actorJson['type']!='Service':
|
if actorJson['type']!='Service':
|
||||||
actorJson['type']='Service'
|
actorJson['type']='Service'
|
||||||
actorChanged=True
|
actorChanged=True
|
||||||
else:
|
else:
|
||||||
|
# this account is a group
|
||||||
if fields.get('isGroup'):
|
if fields.get('isGroup'):
|
||||||
if fields['isGroup']=='on':
|
if fields['isGroup']=='on':
|
||||||
if actorJson['type']!='Group':
|
if actorJson['type']!='Group':
|
||||||
actorJson['type']='Group'
|
actorJson['type']='Group'
|
||||||
actorChanged=True
|
actorChanged=True
|
||||||
else:
|
else:
|
||||||
|
# this account is a person (default)
|
||||||
if actorJson['type']!='Person':
|
if actorJson['type']!='Person':
|
||||||
actorJson['type']='Person'
|
actorJson['type']='Person'
|
||||||
actorChanged=True
|
actorChanged=True
|
||||||
|
|
15
inbox.py
15
inbox.py
|
@ -1562,6 +1562,21 @@ def inboxAfterCapabilities(session,keyId: str,handle: str,messageJson: {}, \
|
||||||
if isDM(postJsonObject):
|
if isDM(postJsonObject):
|
||||||
nickname=handle.split('@')[0]
|
nickname=handle.split('@')[0]
|
||||||
if nickname!='inbox':
|
if nickname!='inbox':
|
||||||
|
followDMsFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/.followDMs'
|
||||||
|
if os.path.isfile(followDMsFilename):
|
||||||
|
followingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/following.txt'
|
||||||
|
if not postJsonObject.get('actor'):
|
||||||
|
return False
|
||||||
|
sendingActor=postJsonObject['actor']
|
||||||
|
sendingActorNickname=getNicknameFromActor(sendingActor)
|
||||||
|
sendingActorDomain,sendingActorPort=getDomainFromActor(sendingActor)
|
||||||
|
if sendingActorNickname and sendingActorDomain:
|
||||||
|
if sendingActorNickname+'@'+sendingActorDomain != nickname+'@'+domain:
|
||||||
|
if sendingActorNickname+'@'+sendingActorDomain not in open(followingFilename).read():
|
||||||
|
print(nickname+'@'+domain+' cannot receive DM from '+sendingActorNickname+'@'+sendingActorDomain+' because they do not follow them')
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return False
|
||||||
# dm index will be updated
|
# dm index will be updated
|
||||||
updateIndexList.append('dm')
|
updateIndexList.append('dm')
|
||||||
dmNotify(baseDir,handle,httpPrefix+'://'+domain+'/users/'+nickname+'/dm')
|
dmNotify(baseDir,handle,httpPrefix+'://'+domain+'/users/'+nickname+'/dm')
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,5 +163,6 @@
|
||||||
"September": "September",
|
"September": "September",
|
||||||
"October": "October",
|
"October": "October",
|
||||||
"November": "November",
|
"November": "November",
|
||||||
"December": "December"
|
"December": "December",
|
||||||
|
"Only people I follow can send me DMs": "Only people I follow can send me DMs"
|
||||||
}
|
}
|
||||||
|
|
|
@ -518,6 +518,7 @@ def htmlEditProfile(translate: {},baseDir: str,path: str,domain: str,port: int)
|
||||||
|
|
||||||
isBot=''
|
isBot=''
|
||||||
isGroup=''
|
isGroup=''
|
||||||
|
followDMs=''
|
||||||
displayNickname=nickname
|
displayNickname=nickname
|
||||||
bioStr=''
|
bioStr=''
|
||||||
manuallyApprovesFollowers=''
|
manuallyApprovesFollowers=''
|
||||||
|
@ -539,6 +540,8 @@ def htmlEditProfile(translate: {},baseDir: str,path: str,domain: str,port: int)
|
||||||
elif actorJson['type']=='Group':
|
elif actorJson['type']=='Group':
|
||||||
isGroup='checked'
|
isGroup='checked'
|
||||||
isBot=''
|
isBot=''
|
||||||
|
if os.path.isfile(actorFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/.followDMs'):
|
||||||
|
followDMs='checked'
|
||||||
|
|
||||||
filterStr=''
|
filterStr=''
|
||||||
filterFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/filters.txt'
|
filterFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/filters.txt'
|
||||||
|
@ -620,6 +623,7 @@ def htmlEditProfile(translate: {},baseDir: str,path: str,domain: str,port: int)
|
||||||
' <input type="checkbox" class=profilecheckbox" name="approveFollowers" '+manuallyApprovesFollowers+'>'+translate['Approve follower requests']+'<br>' \
|
' <input type="checkbox" class=profilecheckbox" name="approveFollowers" '+manuallyApprovesFollowers+'>'+translate['Approve follower requests']+'<br>' \
|
||||||
' <input type="checkbox" class=profilecheckbox" name="isBot" '+isBot+'>'+translate['This is a bot account']+'<br>' \
|
' <input type="checkbox" class=profilecheckbox" name="isBot" '+isBot+'>'+translate['This is a bot account']+'<br>' \
|
||||||
' <input type="checkbox" class=profilecheckbox" name="isGroup" '+isGroup+'>'+translate['This is a group account']+'<br>' \
|
' <input type="checkbox" class=profilecheckbox" name="isGroup" '+isGroup+'>'+translate['This is a group account']+'<br>' \
|
||||||
|
' <input type="checkbox" class=profilecheckbox" name="followDMs" '+followDMs+'>'+translate['Only people I follow can send me DMs']+'<br>' \
|
||||||
' <br><b>'+translate['Filtered words']+'</b>' \
|
' <br><b>'+translate['Filtered words']+'</b>' \
|
||||||
' <br>'+translate['One per line']+ \
|
' <br>'+translate['One per line']+ \
|
||||||
' <textarea id="message" name="filteredWords" placeholder="" style="height:200px">'+filterStr+'</textarea>' \
|
' <textarea id="message" name="filteredWords" placeholder="" style="height:200px">'+filterStr+'</textarea>' \
|
||||||
|
|
Loading…
Reference in New Issue