mirror of https://gitlab.com/bashrc2/epicyon
Show timelines from notification client
parent
fa66fdbed9
commit
8d366d93e4
|
@ -14,6 +14,7 @@ import select
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from random import randint
|
from random import randint
|
||||||
from utils import getStatusNumber
|
from utils import getStatusNumber
|
||||||
|
from utils import loadJson
|
||||||
from utils import saveJson
|
from utils import saveJson
|
||||||
from utils import getNicknameFromActor
|
from utils import getNicknameFromActor
|
||||||
from utils import getDomainFromActor
|
from utils import getDomainFromActor
|
||||||
|
@ -274,6 +275,48 @@ def _notificationNewPost(session,
|
||||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
|
|
||||||
|
|
||||||
|
def _showLocalBox(boxName: str, startPostIndex=0, noOfPosts=10) -> None:
|
||||||
|
"""Shows locally stored posts for a given subdirectory
|
||||||
|
"""
|
||||||
|
homeDir = str(Path.home())
|
||||||
|
if not os.path.isdir(homeDir + '/.config'):
|
||||||
|
os.mkdir(homeDir + '/.config')
|
||||||
|
if not os.path.isdir(homeDir + '/.config/epicyon'):
|
||||||
|
os.mkdir(homeDir + '/.config/epicyon')
|
||||||
|
msgDir = homeDir + '/.config/epicyon/' + boxName
|
||||||
|
if not os.path.isdir(msgDir):
|
||||||
|
os.mkdir(msgDir)
|
||||||
|
index = []
|
||||||
|
for subdir, dirs, files in os.walk(msgDir):
|
||||||
|
for f in files:
|
||||||
|
if not f.endswith('.json'):
|
||||||
|
continue
|
||||||
|
index.append(f)
|
||||||
|
break
|
||||||
|
maxPostIndex = len(index)
|
||||||
|
index.sort()
|
||||||
|
for pos in range(startPostIndex, startPostIndex + noOfPosts):
|
||||||
|
if pos >= maxPostIndex:
|
||||||
|
break
|
||||||
|
speakerJsonFilename = os.path.join(msgDir, index[pos])
|
||||||
|
speakerJson = loadJson(speakerJsonFilename)
|
||||||
|
if not speakerJson.get('published'):
|
||||||
|
continue
|
||||||
|
published = speakerJson['published'].replace('T', ' ')
|
||||||
|
posStr = str(pos) + '.'
|
||||||
|
while len(posStr) < 4:
|
||||||
|
posStr += ' '
|
||||||
|
name = speakerJson['name']
|
||||||
|
name = (name[:16] + '..') if len(name) > 16 else name
|
||||||
|
while len(name) < 16:
|
||||||
|
name += ' '
|
||||||
|
content = speakerJson['content']
|
||||||
|
content = (content[:40] + '..') if len(content) > 40 else content
|
||||||
|
print(posStr + ' | ' + name + ' | ' +
|
||||||
|
published + ' | ' + content) + ' |'
|
||||||
|
print('')
|
||||||
|
|
||||||
|
|
||||||
def _notificationNewDM(session, toHandle: str,
|
def _notificationNewDM(session, toHandle: str,
|
||||||
baseDir: str, nickname: str, password: str,
|
baseDir: str, nickname: str, password: str,
|
||||||
domain: str, port: int, httpPrefix: str,
|
domain: str, port: int, httpPrefix: str,
|
||||||
|
@ -591,6 +634,9 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
elif speakerJson.get('direct'):
|
elif speakerJson.get('direct'):
|
||||||
speakerJson['decrypted'] = False
|
speakerJson['decrypted'] = False
|
||||||
_storeMessage(speakerJson, 'dm')
|
_storeMessage(speakerJson, 'dm')
|
||||||
|
else:
|
||||||
|
speakerJson['decrypted'] = False
|
||||||
|
_storeMessage(speakerJson, 'inbox')
|
||||||
|
|
||||||
print('')
|
print('')
|
||||||
|
|
||||||
|
@ -608,6 +654,12 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
if screenreader:
|
if screenreader:
|
||||||
keyPress = _waitForKeypress(2, debug)
|
keyPress = _waitForKeypress(2, debug)
|
||||||
break
|
break
|
||||||
|
elif keyPress.startswith('show dm'):
|
||||||
|
_showLocalBox('dm', 0, 10)
|
||||||
|
elif keyPress.startswith('show sen'):
|
||||||
|
_showLocalBox('sent', 0, 10)
|
||||||
|
elif keyPress.startswith('show in'):
|
||||||
|
_showLocalBox('inbox', 0, 10)
|
||||||
elif keyPress == 'reply' or keyPress == 'r':
|
elif keyPress == 'reply' or keyPress == 'r':
|
||||||
if speakerJson.get('id'):
|
if speakerJson.get('id'):
|
||||||
postId = speakerJson['id']
|
postId = speakerJson['id']
|
||||||
|
|
Loading…
Reference in New Issue