mirror of https://gitlab.com/bashrc2/epicyon
Merge branch 'main' of ssh://code.freedombone.net:2222/bashrc/epicyon
commit
60c9f93f34
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
1
auth.py
1
auth.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
1
blog.py
1
blog.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
1
briar.py
1
briar.py
|
|
@ -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:
|
||||||
|
|
|
||||||
1
cache.py
1
cache.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
1
city.py
1
city.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 = (
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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. ' + \
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
1
feeds.py
1
feeds.py
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
1
git.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
#
|
#
|
||||||
|
|
|
||||||
1
inbox.py
1
inbox.py
|
|
@ -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
|
||||||
|
|
|
||||||
1
jami.py
1
jami.py
|
|
@ -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:
|
||||||
|
|
|
||||||
1
like.py
1
like.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
411
locations.txt
411
locations.txt
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
1
media.py
1
media.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
17
pgp.py
|
|
@ -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)
|
||||||
|
|
|
||||||
1
posts.py
1
posts.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
30
session.py
30
session.py
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
1
ssb.py
|
|
@ -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:
|
||||||
|
|
|
||||||
25
tests.py
25
tests.py
|
|
@ -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
1
tox.py
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
1
xmpp.py
1
xmpp.py
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue