Merge branch 'main' of ssh://code.freedombone.net:2222/bashrc/epicyon

main
Bob Mottram 2021-06-18 13:01:33 +01:00
commit 60c9f93f34
75 changed files with 329 additions and 255 deletions

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
from utils import hasUsersPath from utils import hasUsersPath

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
from utils import removeIdEnding from utils import removeIdEnding
from utils import hasUsersPath from utils import hasUsersPath

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Security"
import base64 import base64
import hashlib import hashlib

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Core"
import os import os
from webfinger import webfingerHandle from webfinger import webfingerHandle

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
import json import json

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
from datetime import datetime from datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Timeline"
import os import os
from pprint import pprint from pprint import pprint

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def getBriarAddress(actorJson: {}) -> str: def getBriarAddress(actorJson: {}) -> str:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
import datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "RSS Feeds"
import os import os
import datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Spoofing"
import os import os
import datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Security"
validContexts = ( validContexts = (

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
from datetime import datetime from datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Client"
import os import os
import html import html
@ -725,7 +726,7 @@ def _readLocalBoxPost(session, nickname: str, domain: str,
if isPGPEncrypted(content): if isPGPEncrypted(content):
sayStr = 'Encrypted message. Please enter your passphrase.' sayStr = 'Encrypted message. Please enter your passphrase.'
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak) _sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
content = pgpDecrypt(content, actor) content = pgpDecrypt(domain, content, actor)
if isPGPEncrypted(content): if isPGPEncrypted(content):
sayStr = 'Message could not be decrypted' sayStr = 'Message could not be decrypted'
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak) _sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
@ -836,7 +837,8 @@ def _desktopShowProfile(session, nickname: str, domain: str,
isHttp = False isHttp = False
if 'http://' in actor: if 'http://' in actor:
isHttp = True isHttp = True
actorJson, asHeader = getActorJson(actor, isHttp, False, False, True) actorJson, asHeader = \
getActorJson(domain, actor, isHttp, False, False, True)
_desktopShowActor(baseDir, actorJson, translate, _desktopShowActor(baseDir, actorJson, translate,
systemLanguage, screenreader, espeak) systemLanguage, screenreader, espeak)
@ -854,7 +856,8 @@ def _desktopShowProfileFromHandle(session, nickname: str, domain: str,
"""Shows the profile for a handle """Shows the profile for a handle
Returns the actor json Returns the actor json
""" """
actorJson, asHeader = getActorJson(handle, False, False, False, True) actorJson, asHeader = \
getActorJson(domain, handle, False, False, False, True)
_desktopShowActor(baseDir, actorJson, translate, _desktopShowActor(baseDir, actorJson, translate,
systemLanguage, screenreader, espeak) systemLanguage, screenreader, espeak)
@ -1182,7 +1185,7 @@ def _desktopNewDMbase(session, toHandle: str,
for after in range(randint(1, 16)): for after in range(randint(1, 16)):
paddedMessage += ' ' paddedMessage += ' '
cipherText = \ cipherText = \
pgpEncryptToActor(paddedMessage, toHandle) pgpEncryptToActor(domain, paddedMessage, toHandle)
if not cipherText: if not cipherText:
sayStr = \ sayStr = \
toHandle + ' has no PGP public key. ' + \ toHandle + ' has no PGP public key. ' + \

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def _getDonationTypes() -> str: def _getDonationTypes() -> str:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Commandline Interface"
import os import os
import shutil import shutil
@ -1631,7 +1632,7 @@ if args.migrations:
sys.exit() sys.exit()
if args.actor: if args.actor:
getActorJson(args.actor, args.http, args.gnunet, debug) getActorJson(args.domain, args.actor, args.http, args.gnunet, debug)
sys.exit() sys.exit()
if args.followers: if args.followers:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "RSS Feeds"
def rss2TagHeader(hashtag: str, httpPrefix: str, domainFull: str) -> str: def rss2TagHeader(hashtag: str, httpPrefix: str, domainFull: str) -> str:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
from pprint import pprint from pprint import pprint
import os import os

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Calendar"
import os import os

1
git.py
View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
import html import html

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Calendar"
import os import os
from uuid import UUID from uuid import UUID

View File

@ -6,6 +6,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Security"
# see https://tools.ietf.org/html/draft-cavage-http-signatures-06 # see https://tools.ietf.org/html/draft-cavage-http-signatures-06
# #

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Timeline"
import json import json
import os import os

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def getJamiAddress(actorJson: {}) -> str: def getJamiAddress(actorJson: {}) -> str:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
from utils import hasUsersPath from utils import hasUsersPath
from utils import getFullDomain from utils import getFullDomain

View File

@ -7,6 +7,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Security"
import base64 import base64
import hashlib import hashlib

View File

@ -178,279 +178,224 @@ AZENTKILYSZABADJA, HUNGARY:47.0778:17.9683:22
BABELTHUAP, PALAU ISLAND:7.3675:134.544:370 BABELTHUAP, PALAU ISLAND:7.3675:134.544:370
BACAU, ROMANIA:46.5219:26.9103:43 BACAU, ROMANIA:46.5219:26.9103:43
BACOLOD, PHILIPPINES:10.6425:122.929:162 BACOLOD, PHILIPPINES:10.6425:122.929:162
BADAJOZ, SPAIN:38.8911:W6.82111 BADAJOZ, SPAIN:38.8911:W6.82111:1440
BADEN-BADEN, GERMANY:48.7911:8.18694:140 BADEN-BADEN, GERMANY:48.7911:8.18694:140
BAFOUSSAM, CAMEROON:5.53694:10.3542 BAFOUSSAM, CAMEROON:5.53694:10.3542:402
BAGABAG, PHILIPPINES:16.6189:121.252 BAGABAG, PHILIPPINES:16.6189:121.252:183
BAGAN, MYANMAR:21.1819:94.9292 BAGAN, MYANMAR:21.1819:94.9292:104
BAGE, BRAZIL:-31.3903:W54.1122 BAGE, BRAZIL:-31.3903:W54.1122:50
BAGHDAD, IRAQ:33.2619:44.2339 BAGHDAD, IRAQ:33.2619:44.2339:204
BAGHDOGRA, INDIA:26.6814:88.3281 BAGHDOGRA, INDIA:26.6814:88.3281:10
BAGNOLE-DE-L'ORNE, FRANCE:48.5458:W0.387222 BAGNOLE-DE-L'ORNE, FRANCE:48.5458:W0.387222:9
BAGOTVILLE, CANADA:48.3306:W70.9964 BAGUIO, PHILIPPINES:16.375:120.619:57
BAGUIO, PHILIPPINES:16.375:120.619 BAHAR DAR, ETHIOPIA:11.6081:37.3214:28
BAHAR DAR, ETHIOPIA:11.6081:37.3214 BAHAWALPURE, PAKISTAN:29.3469:71.7114:246
BAHAWALPURE, PAKISTAN:29.3469:71.7114 BAHIA BLANCA, ARGENTINA:-38.7247:W62.1692:1000
BAHIA BLANCA, ARGENTINA:-38.7247:W62.1692 BAHIA SOLANO, COLOMBIA:6.20278:W77.3944:1667
BAHIAS DEHUATULCO, MEXICO:15.7747:W96.2608 BAHRAIN, BAHRAIN:25.9183:50.5906:765
BAHIA SOLANO, COLOMBIA:6.20278:W77.3944 BAIA MARE, ROMANIA:47.6583:23.47:233
BAHRAIN, BAHRAIN:25.9183:50.5906 BAIDOA, SOMALIA:3.09861:43.6242,1000
BAIA MARE, ROMANIA:47.6583:23.47 BAIE COMEAU, CANADA:49.1322:W68.2072:432
BAIDOA, SOMALIA:3.09861:43.6242 BAKER LAKE, CANADA:64.2989:W96.0778:182
BAIE COMEAU, CANADA:49.1322:W68.2072 BAKERSFIELD, USA:35.4333:W119.057:391
BAKEL, SENEGAL:14.8472:W12.4681 BAKHTARAN, IRAN:34.3464:47.1564:500
BAKER LAKE, CANADA:64.2989:W96.0778 BAKSHI KA TALAB, INDIA:26.9883:80.8931:41
BAKERSFIELD, USA:35.4333:W119.057
BAKHTARAN, IRAN:34.3464:47.1564
BAKSHI KA TALAB, INDIA:26.9883:80.8931
BAKU, RUSSIA:40.4675:50.0467:2140 BAKU, RUSSIA:40.4675:50.0467:2140
BALIKPAPAN, INDONESIA:-1.26806:116.894 BALIKPAPAN, INDONESIA:-1.26806:116.894:503
BALKHASH, RUSSIA:46.8942:75.0047 BALTIMORE, USA:39.1753:W76.6683:239
BALMACEDA, CHILE:-45.9158:W71.6892 BALURGHAT, INDIA:25.2608:88.7956:10
BALTIMORE, USA:39.1753:W76.6683 BAMAKO, MALI:12.5333:W7.94972:245
BALURGHAT, INDIA:25.2608:88.7956 BAMBERG, GERMANY:49.9203:10.9142:54
BAMAKO, MALI:12.5333:W7.94972 BAMENDA, CAMEROON:6.03917:10.1225:50
BAMBARI, CENTRAL AFRICAN REP.:5.84694:20.6494 BAM, IRAN:29.0839:58.4503:50
BAMBERG, GERMANY:49.9203:10.9142 BANDA ACEH, INDONESIA:5.52333:95.4203:61
BAMENDA, CAMEROON:6.03917:10.1225 BANDAR ABBAS, IRAN:27.1581:56.1722:50
BAM, IRAN:29.0839:58.4503 BANDAR LENGEH, IRAN:26.5317:54.8217:2
BANAK, NORWAY:70.0686:24.9733 BANDAR MAHSHAHR, IRAN:30.5561:49.1517:20
BANANERA, GUATEMALA:15.4733:W88.8372
BANDA ACEH, INDONESIA:5.52333:95.4203
BANDAR ABBAS, IRAN:27.1581:56.1722
BANDAR LENGEH, IRAN:26.5317:54.8217
BANDAR MAHSHAHR, IRAN:30.5561:49.1517
BANDIRMA, TURKEY:40.3178:27.9775:713 BANDIRMA, TURKEY:40.3178:27.9775:713
BANDOUNDU, ZAIRE:-3.31111:17.3817 BANDOUNDU, ZAIRE:-3.31111:17.3817:222
BANDUNG, INDONESIA:-6.90056:107.576 BANDUNG, INDONESIA:-6.90056:107.576:167
BANE HOUEI SAY, LAOS:20.2572:100.437 BANGALORE, INDIA:12.9497:77.6681:741
BANGALORE, INDIA:12.9497:77.6681 BANGKOK, THAILAND:13.9125:100.607:1569
BANGASSOU, CENTRAL AFRICAN REP.:4.78444:22.7814 BANGOR, USA:44.8072:W68.8281:89
BANGKOK, THAILAND:13.9125:100.607 BANGUI, CENTRAL AFRICAN REP.:4.39833:18.5186:67
BANGOR, USA:44.8072:W68.8281 BANJA LUKA, BOSNIA-HERCEGOVINA:44.9414:17.2975:1239
BANGUI, CENTRAL AFRICAN REP.:4.39833:18.5186 BANJARMASIN, INDONESIA:-3.44194:114.761:98
BANJA LUKA, BOSNIA-HERCEGOVINA:44.9414:17.2975 BANJUL, GAMBIA:13.3378:W16.6519:12
BANJARMASIN, INDONESIA:-3.44194:114.761 BANNU, PAKISTAN:32.9719:70.5247:100
BANJUL, GAMBIA:13.3378:W16.6519 BARACOA PLAYA, CUBA:20.3656:W74.5064:977
BANMAW, MYANMAR:24.2689:97.2461 BARAHONA, DOMINICAN REPUBLIC:18.2514:W71.1203:163
BANNU, PAKISTAN:32.9719:70.5247 BARBACENA, BRAZIL:-21.2669:W43.7608:759
BARACOA PLAYA, CUBA:20.3656:W74.5064 BARCELONA, SPAIN:41.40016140348051:2.159836908862287:101
BARAHONA, DOMINICAN REPUBLIC:18.2514:W71.1203 BARCELONA, VENEZUELA:10.1069:W64.6889:135
BARBACENA, BRAZIL:-21.2669:W43.7608 BARDUFOSS, NORWAY:69.0556:18.5403:2
BARCELONA, SPAIN:41.40016140348051:2.159836908862287 BAREILLY, INDIA:28.4222:79.4497:106
BARCELONA, VENEZUELA:10.1069:W64.6889
BARDUFOSS, NORWAY:69.0556:18.5403
BAREILLY, INDIA:28.4222:79.4497
BARI, ITALY:41.1383:16.7606:117 BARI, ITALY:41.1383:16.7606:117
BARINAS, VENEZUELA:8.61944:W70.2206 BARINAS, VENEZUELA:8.61944:W70.2206:322
BARKING SANDS, USA:22.0217:W159.787
BARNAUL, RUSSIA:53.3639:83.5419:321 BARNAUL, RUSSIA:53.3639:83.5419:321
BARODA, INDIA:22.3361:73.2261 BARODA, INDIA:22.3361:73.2261:220
BARQUISIMETO, VENEZUELA:10.0425:W69.3583 BARQUISIMETO, VENEZUELA:10.0425:W69.3583:353
BARRA DEL COLORADO, COSTA RICA:10.7686:W83.5858 BARRA DEL COLORADO, COSTA RICA:10.7686:W83.5858:811
BARRA DO GARCAS, BRAZIL:-15.8611:W52.3889 BARRANCABERMEJA, COLOMBIA:7.02417:W73.8067:1154
BARRANCABERMEJA, COLOMBIA:7.02417:W73.8067 BARRANQUILLA, COLOMBIA:10.8894:W74.7806:154
BARRANQUILLA, COLOMBIA:10.8894:W74.7806 BARROW, USA:71.2853:W156.766:55
BARROW ISLAND, ENGLAND:54.1297:W3.25611
BARROW, USA:71.2853:W156.766
BARTER ISLAND, USA:70.1339:W143.577
BARTH, GERMANY:54.3381:12.71:40 BARTH, GERMANY:54.3381:12.71:40
BASCO, PHILIPPINES:20.4517:121.98 BASRAH, IRAQ:30.5486:47.6622:181
BASRAH, IRAQ:30.5486:47.6622 BASSE TERRE, ST. KITTS & NEVIS:17.3111:W62.7186:6
BASSE TERRE, ST. KITTS & NEVIS:17.3111:W62.7186 BASTIA, CORSE ISL.:42.5539:9.48333:19
BASTAK, IRAN:27.2125:54.3183 BATA, EQUATORIAL GUINEA:1.90528:9.80556:50
BASTIA, CORSE ISL.:42.5539:9.48333 BATAM, INDONESIA:1.12083:104.119:1595
BATA, EQUATORIAL GUINEA:1.90528:9.80556
BATAM, INDONESIA:1.12083:104.119
BATMAN, TURKEY:37.9289:41.1161:563 BATMAN, TURKEY:37.9289:41.1161:563
BATON ROUGE, USA:30.5331:W91.1494:199 BATON ROUGE, USA:30.5331:W91.1494:199
BATOURI, CAMEROON:4.47306:14.3636 BATSFJORD, NORWAY:70.6:29.6925:1435
BATSFJORD, NORWAY:70.6:29.6925 BATTAMBANG, CAMBODIA:13.0956:103.224:293
BATTAMBANG, CAMBODIA:13.0956:103.224 BATTICALOA, SRI LANKA:7.70556:81.6778:50
BATTICALOA, SRI LANKA:7.70556:81.6778 BAUDETTE, USA:48.7283:W94.6122:12
BATU LICIN, INDONESIA:-3.4125:115.996 BAUMHOLDER, GERMANY:49.65:7.3:69
BAUCAU, WEST TIMOR:-8.48528:126.399 BAURU, BRAZIL:-22.345:W49.0536:667
BAUDETTE, USA:48.7283:W94.6122
BAUMHOLDER, GERMANY:49.65:7.3
BAURU, BRAZIL:-22.345:W49.0536
BAUTZEN, GERMANY:51.1933:14.5197:66 BAUTZEN, GERMANY:51.1933:14.5197:66
BAYAMO, CUBA:20.3964:W76.6214 BAYAMO, CUBA:20.3964:W76.6214:918
BAYREUTH, GERMANY:49.9842:11.6383:66 BAYREUTH, GERMANY:49.9842:11.6383:66
BEAUFORT, USA:32.4772:W80.7231 BEAUFORT, USA:32.4772:W80.7231:65
BEAUMONT, USA:29.9508:W94.0206 BEAUMONT, USA:29.9508:W94.0206:220
BEAUNE, FRANCE:47.0058:4.89333 BEAUNE, FRANCE:47.0058:4.89333:31
BEAUVAIS, FRANCE:49.4544:2.11278 BEAUVAIS, FRANCE:49.4544:2.11278:33
BEAUVECHAIN, BELGIUM:50.7586:4.76833 BEDFORD, USA:42.4697:W71.2889:36
BEDFORD, USA:42.4697:W71.2889 BEER-SHEBA, ISRAEL:31.2869:34.7228:117
BEER-SHEBA, ISRAEL:31.2869:34.7228 BEIJING, CHINA:40.08:116.584:16808:4144
BEIJING, CHINA:40.08:116.584:16808 BEIRA, MOZAMBIQUE:-19.7964:34.9075:633
BEIRA, MOZAMBIQUE:-19.7964:34.9075 BEIRUT, LEBANON:33.8133:35.4886:19
BEIRUT, LEBANON:33.8133:35.4886 BEJAJA, ALGERIA:36.7119:5.06972:120
BEJAJA, ALGERIA:36.7119:5.06972 BELEM, BRAZIL:-1.37917:W48.4761:1059
BEJA (MADEIRA), ACORES:38.0789:W7.93222
BELEM, BRAZIL:-1.37917:W48.4761
BELFAST, NORTH IRELAND:54.57925:W5.93892:115 BELFAST, NORTH IRELAND:54.57925:W5.93892:115
BELGAUM, INDIA:15.8592:74.6181 BELGAUM, INDIA:15.8592:74.6181:94
BELIZE CITY, BELIZE:17.5389:W88.3081 BELIZE CITY, BELIZE:17.5389:W88.3081:35
BELLEVILLE, USA:38.545:W89.835 BELLEVILLE, USA:38.545:W89.835:60
BELLINGHAM, USA:48.7925:W122.537 BELLINGHAM, USA:48.7925:W122.537:79
BELO HORIZONTE, BRAZIL:-19.6336:W43.9686 BELO HORIZONTE, BRAZIL:-19.6336:W43.9686:330
BENGHAZI, LIBYA:32.0967:20.2694 BENGHAZI, LIBYA:32.0967:20.2694:314
BENGKULU, INDONESIA:-3.86389:102.341 BENGKULU, INDONESIA:-3.86389:102.341:151
BENGUELA, ANGOLA:-12.6089:13.4036 BENGUELA, ANGOLA:-12.6089:13.4036:2100
BENIN, NIGERIA:6.31722:5.59944 BENIN, NIGERIA:6.31722:5.59944:1204
BENSON, ENGLAND:51.6161:W1.09556:9 BENSON, ENGLAND:51.6161:W1.09556:9
BEOGRAD, YUGOSLAVIA:44.8183:20.3089 BEOGRAD, YUGOSLAVIA:44.8183:20.3089:360
BEQUIA, ST.VINCENT/GRENADINES:12.9883:W61.2619 BEQUIA, ST.VINCENT/GRENADINES:12.9883:W61.2619:367
BERBERA, SOMALIA:10.3892:44.9408 BERBERATI, CENTRAL AFRICAN REP.:4.22139:15.7861:67
BERBERATI, CENTRAL AFRICAN REP.:4.22139:15.7861
BERGAMO, ITALY:45.6739:9.70417:40 BERGAMO, ITALY:45.6739:9.70417:40
BERGEN, NORWAY:60.2933:5.21806 BERGEN, NORWAY:60.2933:5.21806:445
BERGERAC, FRANCE:44.8534568:0.487531 BERGERAC, FRANCE:44.8534568:0.487531:56
BERLIN, GERMANY:52.5170365:13.3888599:891 BERLIN, GERMANY:52.5170365:13.3888599:891
BERMEJO, BOLIVIA:-22.7694:W64.315 BERMEJO, BOLIVIA:-22.7694:W64.315:5
BERN, SWITZERLAND:46.9139:7.49694 BERN, SWITZERLAND:46.9139:7.49694:51
BERTRIX, BELGIUM:49.8872:5.22861 BERTRIX, BELGIUM:49.8872:5.22861:137
BESALAMPY, MADAGASCAR:-16.7419:44.4814
BESANCON-LA-VEZE, FRANCE:47.2083:6.08306:5 BESANCON-LA-VEZE, FRANCE:47.2083:6.08306:5
BETHEL, USA:60.7797:W161.838 BETHEL, USA:60.7797:W161.838:129
BETHLEHEM, SOUTH AFRICA:-28.2483:28.3361 BETHLEHEM, SOUTH AFRICA:-28.2483:28.3361:27
BETTLES, USA:66.9153:W151.528 BETTLES, USA:66.9153:W151.528:4
BEZIERS, FRANCE:43.3239:3.35556 BEZIERS, FRANCE:43.3239:3.35556:95
BHAIRAWA, NEPAL:27.5056:83.4161 BHAIRAWA, NEPAL:27.5056:83.4161:36
BHATINDA, INDIA:30.27:74.7556 BHAUNAGAR, INDIA:21.7519:72.185:108
BHAUNAGAR, INDIA:21.7519:72.185 BHOPAL, INDIA:23.285:77.3372:285
BHIWANI, INDIA:28.8375:76.1775 BHUBANESWAR, INDIA:20.2442:85.8178:422
BHOPAL, INDIA:23.285:77.3372 BHUJ, INDIA:23.2878:69.67:56
BHUBANESWAR, INDIA:20.2442:85.8178 BIAK, INDONESIA:-1.19:136.108:1746
BHUJ, INDIA:23.2878:69.67 BIARRITZ-BAYONNE, FRANCE:43.4683:W1.52306:11
BIAK, INDONESIA:-1.19:136.108
BIARRITZ-BAYONNE, FRANCE:43.4683:W1.52306
BIBERACH, GERMANY:48.1108:9.76278:72 BIBERACH, GERMANY:48.1108:9.76278:72
BIDAR, INDIA:17.9078:77.4858 BIDAR, INDIA:17.9078:77.4858:43
BIG MOUNTAIN, USA:59.3617:W155.257 BIKANER, INDIA:28.0725:73.2067:155
BIKANER, INDIA:28.0725:73.2067 BILASPUR, INDIA:21.9886:82.1111:205
BILASPUR, INDIA:21.9886:82.1111 BILBAO, SPAIN:43.3008:W2.91056:41
BILBAO, SPAIN:43.3008:W2.91056 BILOXI, USA:30.4108:W88.9236:175
BILOXI, USA:30.4108:W88.9236 BIMA, INDONESIA:-8.53944:118.687:222
BIMA, INDONESIA:-8.53944:118.687 BIRATNAGAR, NEPAL:26.4833:87.2636:58
BINTULU, MALAYSIA:3.17222:113.044 BIRJAND, IRAN:32.8956:59.2756:50
BIRAO, CENTRAL AFRICAN REP.:10.2361:22.7172
BIRATNAGAR, NEPAL:26.4833:87.2636
BIRJAND, IRAN:32.8956:59.2756
BIRMINGHAM, ENGLAND:52.4796992:W1.9026911:267 BIRMINGHAM, ENGLAND:52.4796992:W1.9026911:267
BIRMINGHAM, USA:33.5628:W86.7533 BIRMINGHAM, USA:33.5628:W86.7533:383
BIR MOGHREIN, MAURITANIA:25.2367:W11.5886
BISHA, SAUDI ARABIA:19.9839:42.6228
BISHKEK, RUSSIA:43.0617:74.4783:169 BISHKEK, RUSSIA:43.0617:74.4783:169
BISHO, SOUTH AFRICA:-32.8969:27.2789 BISHO, SOUTH AFRICA:-32.8969:27.2789:8
BISKRA, ALGERIA:34.7931:5.73806 BISKRA, ALGERIA:34.7931:5.73806:127
BISSAU, GUINEA BISSAU:11.8947:W15.6536 BISSAU, GUINEA BISSAU:11.8947:W15.6536:77
BITAM, GABON:2.07556:11.4931
BIZERTE, TUNISIA:37.2453:9.79139
BJORKVIK, SWEDEN:58.7908:16.5708
BLACKBUSHE, ENGLAND:51.3239:W0.8475
BLACKPOOL, ENGLAND:53.7717:W3.02861:34 BLACKPOOL, ENGLAND:53.7717:W3.02861:34
BLAGOVESCHENSK, RUSSIA:50.4217:127.41:321 BLAGOVESCHENSK, RUSSIA:50.4217:127.41:321
BLANTYRE, MALAWI:-15.6789:34.9739 BLANTYRE, MALAWI:-15.6789:34.9739:240
BLIDA, ALGERIA:36.5036:2.81417 BLIDA, ALGERIA:36.5036:2.81417:53
BLOEMFONTEIN, SOUTH AFRICA:-29.0328:26.1575 BLOEMFONTEIN, SOUTH AFRICA:-29.0328:26.1575:236
BLUEFIELDS, NICARAGUA:11.9889:W83.7742 BLYTHEVILLE, USA:35.9642:W89.9433:53
BLYTHEVILLE, USA:35.9642:W89.9433 BOA VISTA, CAPE VERDE ISLANDS:16.1367:W22.8889:631
BOA VISTA, BRAZIL:2.84611:W60.69 BOBO-DIOULASSO, BURKINA FASO:11.16:W4.33083:136
BOA VISTA, CAPE VERDE ISLANDS:16.1367:W22.8889 BOCA RATON, USA:26.3783:W80.1075:81
BOBO-DIOULASSO, BURKINA FASO:11.16:W4.33083 BODOE, NORWAY:67.2689:14.3633:1395
BOCA RATON, USA:26.3783:W80.1075 BOGOTA, COLOMBIA:4.6533326:W74.083652:1775
BOCAS DEL TORO, PANAMA:9.34083:W82.2508
BODOE, NORWAY:67.2689:14.3633
BOGOTA, COLOMBIA:4.6533326:W74.083652
BOISE, USA:43.5642:W116.223:206 BOISE, USA:43.5642:W116.223:206
BOJNORD, IRAN:37.4931:57.3006 BOJNORD, IRAN:37.4931:57.3006:36
BOKARO, INDIA:23.6433:86.1486 BOKARO, INDIA:23.6433:86.1486:183
BOLIVAR, ARGENTINA:-36.1869:W61.0761
BOLOGNA, ITALY:44.5342:11.2903:140 BOLOGNA, ITALY:44.5342:11.2903:140
BOLZANO, ITALY:46.4606:11.3261:52 BOLZANO, ITALY:46.4606:11.3261:52
BOMBAY, INDIA:19.0886:72.8678 BOMBAY, INDIA:19.0886:72.8678:603
BOM JESUS DA LAPA, BRAZIL:-13.2619:W43.4081 BOM JESUS DA LAPA, BRAZIL:-13.2619:W43.4081:4116
BOMOEN, NORWAY:60.6386:6.50139 BORA BORA, FRENCH POLYNESIA:-16.4442:W151.751:30
BORA BORA, FRENCH POLYNESIA:-16.4442:W151.751 BORDEAUX, FRANCE:44.841225:W0.5800364:49
BORDEAUX, FRANCE:44.841225:W0.5800364
BORDJ EL AMRI, TUNISIA:36.7211:9.94306
BORKUM, GERMANY:53.5953:6.70917:30 BORKUM, GERMANY:53.5953:6.70917:30
BORLANGE, SWEDEN:60.4219:15.515 BORLANGE, SWEDEN:60.4219:15.515:34
BOSCOMBE DOWN, ENGLAND:51.1519:W1.74722
BOSTON, USA:42.3642:W71.005:232 BOSTON, USA:42.3642:W71.005:232
BOTHAVILLE, SOUTH AFRICA:-27.3667:26.6292 BOTHAVILLE, SOUTH AFRICA:-27.3667:26.6292:43
BOUAKE, IVORY COAST:7.73861:W5.07361 BOUAKE, IVORY COAST:7.73861:W5.07361:71
BOUAR, CENTRAL AFRICAN REP.:5.95806:15.6375 BOUFARIK, ALGERIA:36.5458:2.87611:50
BOUFARIK, ALGERIA:36.5458:2.87611 BOURGAS, BULGARIA:42.5689:27.5139:253
BOURGAS, BULGARIA:42.5689:27.5139 BOURGES, FRANCE:47.0581:2.37028:68
BOURGES, FRANCE:47.0581:2.37028 BOURG, FRANCE:46.2008:5.29194:10
BOURG, FRANCE:46.2008:5.29194
BOURNEMOUTH, ENGLAND:50.7423141383493:W1.8999454858886722:46 BOURNEMOUTH, ENGLAND:50.7423141383493:W1.8999454858886722:46
BOU SAADA, ALGERIA:35.3325:4.20639 BOU SAADA, ALGERIA:35.3325:4.20639:249
BOU SFER, ALGERIA:35.7353:W0.805278 BOU SFER, ALGERIA:35.7353:W0.805278:46
BRADSHAW FIELD, USA:19.76:W155.554
BRAGA, ACORES:41.5869:W8.445 BRAGA, ACORES:41.5869:W8.445
BRAGANCA, ACORES:41.8683:W6.71194 BRAKPAN, SOUTH AFRICA:-26.2386:28.3017:182
BRAKPAN, SOUTH AFRICA:-26.2386:28.3017 BRANDON, CANADA:49.91:W99.9519:77
BRANDON, CANADA:49.91:W99.9519 BRASILIA, BRAZIL:-15.8625:W47.9125:5802
BRASILIA, BRAZIL:-15.8625:W47.9125 BRASSCHAAT, BELGIUM:51.3333:4.5:38
BRASSCHAAT, BELGIUM:51.3333:4.5 BRATISLAVA, SLOVAKIA:48.17:17.2125:367
BRATISLAVA, SLOVAKIA:48.17:17.2125
BRATSK, RUSSIA:56.3708:101.699:262 BRATSK, RUSSIA:56.3708:101.699:262
BRAUNSCHWEIG, GERMANY:52.3192:10.5561:192 BRAUNSCHWEIG, GERMANY:52.3192:10.5561:192
BRAZZAVILLE, CONGO:-4.25167:15.2528 BRAZZAVILLE, CONGO:-4.25167:15.2528:263
BREMEN, GERMANY:53.0758196:8.8071646:326 BREMEN, GERMANY:53.0758196:8.8071646:326
BREMERHAVEN, GERMANY:53.5033:8.57333:93 BREMERHAVEN, GERMANY:53.5033:8.57333:93
BREST, FRANCE:48.4478:W4.41833:49 BREST, FRANCE:48.4478:W4.41833:49
BRIA, CENTRAL AFRICAN REP.:6.52806:21.9889 BRIA, CENTRAL AFRICAN REP.:6.52806:21.9889:2
BRIDGETOWN, BARBADOS:13.0744:W59.4922 BRIDGETOWN, BARBADOS:13.0744:W59.4922:38
BRIENNE-LE CHATEAU, FRANCE:48.4297:4.48111 BRIENNE-LE CHATEAU, FRANCE:48.4297:4.48111:21
BRINDISI, ITALY:40.6575:17.9469:333 BRINDISI, ITALY:40.6575:17.9469:333
BRISBANE, AUSTRALIA:-27.467778:153.028056:1000 BRISBANE, AUSTRALIA:-27.467778:153.028056:1000
BRISTOL, ENGLAND:51.4538022:W2.5972985:110 BRISTOL, ENGLAND:51.4538022:W2.5972985:110
BRIVE, FRANCE:45.1508:1.46917 BRIVE, FRANCE:45.1508:1.46917:48
BRONNOYSUND, NORWAY:65.4592:12.2136 BRONNOYSUND, NORWAY:65.4592:12.2136:4
BROUGH, ENGLAND:53.7194:W0.566111 BROWNSVILLE, USA:25.9067:W97.4258:376
BROUGHTON ISLAND, CANADA:67.5458:W64.0314
BROWNSVILLE, USA:25.9067:W97.4258
BROYE-LES-PESMES, FRANCE:47.335:5.51361:25 BROYE-LES-PESMES, FRANCE:47.335:5.51361:25
BRUECKEBURG, GERMANY:52.2783:9.08194 BRUECKEBURG, GERMANY:52.2783:9.08194:68
BRUEGGEN, GERMANY:51.1997:6.13194 BRUEGGEN, GERMANY:51.1997:6.13194:61
BRUNEI, BRUNEI:4.94556:114.928 BRUSSELS, BELGIUM:50.9022:4.49861:32
BRUSSELS, BELGIUM:50.9022:4.49861
BRYANSK, RUSSIA:53.2142:34.1764:186 BRYANSK, RUSSIA:53.2142:34.1764:186
BRYAN, USA:30.7156:W96.3311 BRYAN, USA:30.7156:W96.3311:140
BUATTIFEL, LIBYA:28.7953:22.0808 BUCARAMANGA, COLOMBIA:7.12639:W73.1847:162
BUCARAMANGA, COLOMBIA:7.12639:W73.1847 BUCHAREST, ROMANIA:44.5031:26.1019:228
BUCHAREST, ROMANIA:44.5031:26.1019 BUCKLEY, USA:39.7017:W104.751:10
BUCKLEY, USA:39.7017:W104.751
BUDAPEST, HUNGARY:47.4367:19.2556:525 BUDAPEST, HUNGARY:47.4367:19.2556:525
BUECHEL, GERMANY:50.1736:7.06333 BUECHEL, GERMANY:50.1736:7.06333:12
BUENAVENTURA, COLOMBIA:3.81944:W76.9897 BUENAVENTURA, COLOMBIA:3.81944:W76.9897:50
BUENOS AIRES, ARGENTINA:-34.5006:W58.6042 BUENOS AIRES, ARGENTINA:-34.5006:W58.6042:203
BUENOS AIRES, COSTA RICA:9.16694:W83.3325 BUENOS AIRES, COSTA RICA:9.16694:W83.3325:555
BUFFALO NARROWS, CANADA:55.8419:W108.418 BUFFALO NARROWS, CANADA:55.8419:W108.418:68
BUFFALO, USA:42.9403:W78.7319 BUFFALO, USA:42.9403:W78.7319:136
BUJUMBURA, BURUNDI:-3.32389:29.3183 BUJUMBURA, BURUNDI:-3.32389:29.3183:86
BUKAVU/KAVUMU, ZAIRE:-2.30889:28.8086 BUKAVU/KAVUMU, ZAIRE:-2.30889:28.8086:45
BUKHARA, RUSSIA:39.775:64.48:143 BUKHARA, RUSSIA:39.775:64.48:143
BULAWAYO, ZIMBABWE:-20.0172:28.6178 BULAWAYO, ZIMBABWE:-20.0172:28.6178:1707
BULLOCKS HARBOUR, BAHAMAS:25.7381:W77.84 BUNIA, ZAIRE:1.56556:30.2208:576
BUNIA, ZAIRE:1.56556:30.2208 BURBANK, USA:34.2006:W118.359:44
BUOCHS, SWITZERLAND:46.9747:8.39889 BURGOS, SPAIN:42.3575:W3.62056:107
BURBANK, USA:34.2006:W118.359 BURLINGTON, USA:44.4717:W73.1531:40
BURGOS, SPAIN:42.3575:W3.62056
BURLINGTON, USA:44.4717:W73.1531
BURSA, TURKEY:40.2317:29.0092:1036 BURSA, TURKEY:40.2317:29.0092:1036
BURWASH, CANADA:61.3711:W139.041 BURWASH, CANADA:61.3711:W139.041:30
BUSAN, KOREA:35.1708:129.129 BUSAN, KOREA:35.1708:129.129:770
BUSHEHR, IRAN:28.9447:50.8344 BUSHEHR, IRAN:28.9447:50.8344:50
BUSH FIELD, USA:33.3697:W81.9644
BUTA ZEGA, ZAIRE:2.81778:24.7939
BUTTERWORTH, MALAYSIA:5.46583:100.391
BYHOLMA, SWEDEN:56.785:13.6017
CABALLOCOCHA, PERU:-3.91667:W70.5081 CABALLOCOCHA, PERU:-3.91667:W70.5081
CABINDA, ANGOLA:-5.59694:12.1883 CABINDA, ANGOLA:-5.59694:12.1883
CABO ROJO, DOMINICAN REPUBLIC:17.9289:W71.6447 CABO ROJO, DOMINICAN REPUBLIC:17.9289:W71.6447

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
from follow import followedAccountAccepts from follow import followedAccountAccepts

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Metadata"
import os import os
from utils import loadJson from utils import loadJson

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def getMatrixAddress(actorJson: {}) -> str: def getMatrixAddress(actorJson: {}) -> str:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Timeline"
import os import os
import datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Metadata"
import os import os
from utils import isAccountDir from utils import isAccountDir

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Core"
import os import os
from utils import getNicknameFromActor from utils import getNicknameFromActor

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "RSS Feeds"
# Example hashtag logic: # Example hashtag logic:
# #

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "RSS Feeds"
import os import os
import json import json

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Timeline"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import time import time
import os import os
@ -1208,7 +1209,7 @@ def setPersonNotes(baseDir: str, nickname: str, domain: str,
return True return True
def getActorJson(handle: str, http: bool, gnunet: bool, def getActorJson(hostDomain: str, handle: str, http: bool, gnunet: bool,
debug: bool, quiet=False) -> ({}, {}): debug: bool, quiet=False) -> ({}, {}):
"""Returns the actor json """Returns the actor json
""" """
@ -1353,7 +1354,7 @@ def getActorJson(handle: str, http: bool, gnunet: bool,
} }
personJson = \ personJson = \
getJson(session, personUrl, asHeader, None, getJson(session, personUrl, asHeader, None,
debug, __version__, httpPrefix, None, 20, quiet) debug, __version__, httpPrefix, hostDomain, 20, quiet)
if personJson: if personJson:
if not quiet: if not quiet:
pprint(personJson) pprint(personJson)

17
pgp.py
View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
import os import os
import subprocess import subprocess
@ -331,12 +332,13 @@ def _pgpEncrypt(content: str, recipientPubKey: str) -> str:
return encryptResult return encryptResult
def _getPGPPublicKeyFromActor(handle: str, actorJson=None) -> str: def _getPGPPublicKeyFromActor(domain: str, handle: str, actorJson=None) -> str:
"""Searches tags on the actor to see if there is any PGP """Searches tags on the actor to see if there is any PGP
public key specified public key specified
""" """
if not actorJson: if not actorJson:
actorJson, asHeader = getActorJson(handle, False, False, False, True) actorJson, asHeader = \
getActorJson(domain, handle, False, False, False, True)
if not actorJson: if not actorJson:
return None return None
if not actorJson.get('attachment'): if not actorJson.get('attachment'):
@ -368,18 +370,18 @@ def hasLocalPGPkey() -> bool:
return False return False
def pgpEncryptToActor(content: str, toHandle: str) -> str: def pgpEncryptToActor(domain: str, content: str, toHandle: str) -> str:
"""PGP encrypt a message to the given actor or handle """PGP encrypt a message to the given actor or handle
""" """
# get the actor and extract the pgp public key from it # get the actor and extract the pgp public key from it
recipientPubKey = _getPGPPublicKeyFromActor(toHandle) recipientPubKey = _getPGPPublicKeyFromActor(domain, toHandle)
if not recipientPubKey: if not recipientPubKey:
return None return None
# encrypt using the recipient public key # encrypt using the recipient public key
return _pgpEncrypt(content, recipientPubKey) return _pgpEncrypt(content, recipientPubKey)
def pgpDecrypt(content: str, fromHandle: str) -> str: def pgpDecrypt(domain: str, content: str, fromHandle: str) -> str:
""" Encrypt using your default pgp key to the given recipient """ Encrypt using your default pgp key to the given recipient
fromHandle can be a handle or actor url fromHandle can be a handle or actor url
""" """
@ -390,7 +392,7 @@ def pgpDecrypt(content: str, fromHandle: str) -> str:
if containsPGPPublicKey(content): if containsPGPPublicKey(content):
pubKey = extractPGPPublicKey(content) pubKey = extractPGPPublicKey(content)
else: else:
pubKey = _getPGPPublicKeyFromActor(content, fromHandle) pubKey = _getPGPPublicKeyFromActor(domain, content, fromHandle)
if pubKey: if pubKey:
_pgpImportPubKey(pubKey) _pgpImportPubKey(pubKey)
@ -476,7 +478,8 @@ def pgpPublicKeyUpload(baseDir: str, session,
if debug: if debug:
print('Getting actor for ' + handle) print('Getting actor for ' + handle)
actorJson, asHeader = getActorJson(handle, False, False, debug, True) actorJson, asHeader = \
getActorJson(domain, handle, False, False, debug, True)
if not actorJson: if not actorJson:
if debug: if debug:
print('No actor returned for ' + handle) print('No actor returned for ' + handle)

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import json import json
import html import html

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
from utils import locatePost from utils import locatePost

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Calendar"
import os import os
import time import time

7
scripts/blocked 100755
View File

@ -0,0 +1,7 @@
#!/bin/bash
journalctl -u epicyon | grep 'getJson Forbidden ' > .blocked_events.txt
if [ ! -f .blocked_events.txt ]; then
echo 'No blocking events'
else
cat .blocked_events.txt
fi

View File

@ -0,0 +1,7 @@
#!/bin/bash
journalctl -u epicyon | grep 'getJson Unauthorized ' > .unauthorized.txt
if [ ! -f .unauthorized.txt ]; then
echo 'No unauthorized events'
else
cat .unauthorized.txt
fi

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Core"
import os import os
import requests import requests
@ -12,6 +13,7 @@ from utils import urlPermitted
import json import json
from socket import error as SocketError from socket import error as SocketError
import errno import errno
from http.client import HTTPConnection
baseDirectory = None baseDirectory = None
@ -103,27 +105,41 @@ def getJson(session, url: str, headers: {}, params: {}, debug: bool,
if not quiet: if not quiet:
print('WARN: getJson failed, no session specified for getJson') print('WARN: getJson failed, no session specified for getJson')
return None return None
if debug:
HTTPConnection.debuglevel = 1
try: try:
result = session.get(url, headers=sessionHeaders, result = session.get(url, headers=sessionHeaders,
params=sessionParams, timeout=timeoutSec) params=sessionParams, timeout=timeoutSec)
if result.status_code != 200:
if result.status_code == 401:
print('WARN: getJson Unauthorized url: ' + url)
elif result.status_code == 403:
print('WARN: getJson Forbidden url: ' + url)
elif result.status_code == 404:
print('WARN: getJson Not Found url: ' + url)
else:
print('WARN: getJson url: ' + url +
' failed with error code ' +
str(result.status_code))
return result.json() return result.json()
except requests.exceptions.RequestException as e: except requests.exceptions.RequestException as e:
sessionHeaders2 = sessionHeaders.copy() sessionHeaders2 = sessionHeaders.copy()
if sessionHeaders2.get('Authorization'): if sessionHeaders2.get('Authorization'):
sessionHeaders2['Authorization'] = 'REDACTED' sessionHeaders2['Authorization'] = 'REDACTED'
if debug and not quiet: if debug and not quiet:
print('ERROR: getJson failed\nurl: ' + str(url) + ' ' + print('ERROR: getJson failed, url: ' + str(url) + ', ' +
'headers: ' + str(sessionHeaders2) + ' ' + 'headers: ' + str(sessionHeaders2) + ', ' +
'params: ' + str(sessionParams)) 'params: ' + str(sessionParams) + ', ' + str(e))
print(e)
except ValueError as e: except ValueError as e:
sessionHeaders2 = sessionHeaders.copy() sessionHeaders2 = sessionHeaders.copy()
if sessionHeaders2.get('Authorization'): if sessionHeaders2.get('Authorization'):
sessionHeaders2['Authorization'] = 'REDACTED' sessionHeaders2['Authorization'] = 'REDACTED'
if debug and not quiet: if debug and not quiet:
print('ERROR: getJson failed\nurl: ' + str(url) + ' ' + print('ERROR: getJson failed, url: ' + str(url) + ', ' +
'headers: ' + str(sessionHeaders2) + ' ' + 'headers: ' + str(sessionHeaders2) + ', ' +
'params: ' + str(sessionParams) + ' ' + str(e)) 'params: ' + str(sessionParams) + ', ' + str(e))
except SocketError as e: except SocketError as e:
if not quiet: if not quiet:
if e.errno == errno.ECONNRESET: if e.errno == errno.ECONNRESET:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Timeline"
import os import os
import time import time

1
ssb.py
View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def getSSBAddress(actorJson: {}) -> str: def getSSBAddress(actorJson: {}) -> str:

View File

@ -2877,6 +2877,7 @@ def testFunctions():
function = {} function = {}
functionProperties = {} functionProperties = {}
modules = {} modules = {}
modGroups = {}
for subdir, dirs, files in os.walk('.'): for subdir, dirs, files in os.walk('.'):
for sourceFile in files: for sourceFile in files:
@ -2894,6 +2895,17 @@ def testFunctions():
lines = f.readlines() lines = f.readlines()
modules[modName]['lines'] = lines modules[modName]['lines'] = lines
for line in lines: for line in lines:
if '__module_group__' in line:
if '=' in line:
groupName = line.split('=')[1].strip()
groupName = groupName.replace('"', '')
groupName = groupName.replace("'", '')
modules[modName]['group'] = groupName
if not modGroups.get(groupName):
modGroups[groupName] = [modName]
else:
if modName not in modGroups[groupName]:
modGroups[groupName].append(modName)
if not line.strip().startswith('def '): if not line.strip().startswith('def '):
continue continue
methodName = line.split('def ', 1)[1].split('(')[0] methodName = line.split('def ', 1)[1].split('(')[0]
@ -3134,6 +3146,19 @@ def testFunctions():
continue continue
for modCall in modProperties['calls']: for modCall in modProperties['calls']:
callGraphStr += ' "' + modName + '" -> "' + modCall + '";\n' callGraphStr += ' "' + modName + '" -> "' + modCall + '";\n'
# module groups/clusters
clusterCtr = 1
for groupName, groupModules in modGroups.items():
callGraphStr += '\n'
callGraphStr += \
' subgraph cluster_' + str(clusterCtr) + ' {\n'
callGraphStr += ' node [style=filled];\n'
for modName in groupModules:
callGraphStr += ' ' + modName + ';\n'
callGraphStr += ' label = "' + groupName + '";\n'
callGraphStr += ' color = blue;\n'
callGraphStr += ' }\n'
clusterCtr += 1
callGraphStr += '\n}\n' callGraphStr += '\n}\n'
with open('epicyon_modules.dot', 'w+') as fp: with open('epicyon_modules.dot', 'w+') as fp:
fp.write(callGraphStr) fp.write(callGraphStr)

1
tox.py
View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def getToxAddress(actorJson: {}) -> str: def getToxAddress(actorJson: {}) -> str:

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from utils import isAccountDir from utils import isAccountDir

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Calendar"
import os import os
from datetime import datetime from datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from utils import getConfigParam from utils import getConfigParam

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from datetime import datetime from datetime import datetime

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from utils import isPublicPostFromUrl from utils import isPublicPostFromUrl

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from utils import isSystemAccount from utils import isSystemAccount

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
import time import time

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from utils import getFullDomain from utils import getFullDomain

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
import time import time

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from pprint import pprint from pprint import pprint
@ -79,7 +80,7 @@ def htmlProfileAfterSearch(cssCache: {},
elif httpPrefix == 'gnunet': elif httpPrefix == 'gnunet':
gnunet = True gnunet = True
profileJson, asHeader = \ profileJson, asHeader = \
getActorJson(profileHandle, http, gnunet, debug, False) getActorJson(domain, profileHandle, http, gnunet, debug, False)
if not profileJson: if not profileJson:
return None return None

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from question import isQuestion from question import isQuestion

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from utils import getConfigParam from utils import getConfigParam

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Timeline"
import os import os
import time import time

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from collections import OrderedDict from collections import OrderedDict

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Web Interface"
import os import os
from shutil import copyfile from shutil import copyfile

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "ActivityPub"
import os import os
import urllib.parse import urllib.parse

View File

@ -5,6 +5,7 @@ __version__ = "1.2.0"
__maintainer__ = "Bob Mottram" __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
__module_group__ = "Profile Metadata"
def getXmppAddress(actorJson: {}) -> str: def getXmppAddress(actorJson: {}) -> str: