mirror of https://gitlab.com/bashrc2/epicyon
Resolve openstreetmap go paths
parent
40d54bca50
commit
b8d294a5da
|
@ -545,7 +545,7 @@
|
|||
"stablediffusionweb.com",
|
||||
"allabtai.com",
|
||||
"cozybrushery.com",
|
||||
"story.com",
|
||||
"/story.com",
|
||||
"copilot.microsoft.com",
|
||||
"copilot.github.com",
|
||||
"ubrand.com",
|
||||
|
|
|
@ -3114,7 +3114,8 @@ def daemon_http_get(self) -> None:
|
|||
map_str = \
|
||||
map_format_from_tagmaps_path(self.server.base_dir, self.path,
|
||||
self.server.map_format,
|
||||
self.server.domain)
|
||||
self.server.domain,
|
||||
self.server.session)
|
||||
if map_str:
|
||||
msg = map_str.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
|
@ -3249,7 +3250,10 @@ def daemon_http_get(self) -> None:
|
|||
access_keys,
|
||||
False, self.server.system_language,
|
||||
self.server.default_timeline,
|
||||
self.server.theme_name)
|
||||
self.server.theme_name,
|
||||
self.server.session,
|
||||
self.server.session_onion,
|
||||
self.server.session_i2p)
|
||||
if msg:
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
|
@ -3292,7 +3296,10 @@ def daemon_http_get(self) -> None:
|
|||
True,
|
||||
self.server.system_language,
|
||||
self.server.default_timeline,
|
||||
self.server.theme_name)
|
||||
self.server.theme_name,
|
||||
self.server.session,
|
||||
self.server.session_onion,
|
||||
self.server.session_i2p)
|
||||
if msg:
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
|
|
|
@ -259,7 +259,7 @@ def _send_reply_to_question(self, base_dir: str,
|
|||
languages_understood, False,
|
||||
translate, buy_url,
|
||||
chat_url,
|
||||
auto_cw_cache)
|
||||
auto_cw_cache, curr_session)
|
||||
if message_json:
|
||||
# NOTE: content and contentMap are not required, but we will keep
|
||||
# them in there so that the post does not get filtered out by
|
||||
|
|
|
@ -181,7 +181,8 @@ def _receive_new_post_process_newpost(self, fields: {},
|
|||
translate, buy_url,
|
||||
chat_url,
|
||||
auto_cw_cache,
|
||||
fields['searchableByDropdown'])
|
||||
fields['searchableByDropdown'],
|
||||
curr_session)
|
||||
if message_json:
|
||||
if edited_postid:
|
||||
update_edited_post(base_dir, nickname, domain,
|
||||
|
@ -339,7 +340,8 @@ def _receive_new_post_process_newblog(self, fields: {},
|
|||
media_license_url, media_creator,
|
||||
languages_understood,
|
||||
translate, buy_url, chat_url,
|
||||
fields['searchableByDropdown'])
|
||||
fields['searchableByDropdown'],
|
||||
curr_session)
|
||||
if message_json:
|
||||
if fields['schedulePost']:
|
||||
return NEW_POST_SUCCESS
|
||||
|
@ -579,7 +581,7 @@ def _receive_new_post_process_newunlisted(self, fields: {},
|
|||
languages_understood,
|
||||
translate, buy_url,
|
||||
chat_url,
|
||||
auto_cw_cache)
|
||||
auto_cw_cache, curr_session)
|
||||
if message_json:
|
||||
if edited_postid:
|
||||
update_edited_post(base_dir, nickname, domain,
|
||||
|
@ -741,7 +743,8 @@ def _receive_new_post_process_newfollowers(self, fields: {},
|
|||
translate,
|
||||
buy_url, chat_url,
|
||||
auto_cw_cache,
|
||||
fields['searchableByDropdown'])
|
||||
fields['searchableByDropdown'],
|
||||
curr_session)
|
||||
if message_json:
|
||||
if edited_postid:
|
||||
update_edited_post(base_dir,
|
||||
|
@ -912,7 +915,7 @@ def _receive_new_post_process_newdm(self, fields: {},
|
|||
reply_is_chat,
|
||||
translate,
|
||||
buy_url, chat_url,
|
||||
auto_cw_cache)
|
||||
auto_cw_cache, curr_session)
|
||||
if message_json:
|
||||
print('DEBUG: posting DM edited_postid ' +
|
||||
str(edited_postid))
|
||||
|
@ -1065,7 +1068,7 @@ def _receive_new_post_process_newreminder(self, fields: {}, nickname: str,
|
|||
languages_understood,
|
||||
False, translate,
|
||||
buy_url, chat_url,
|
||||
auto_cw_cache)
|
||||
auto_cw_cache, curr_session)
|
||||
if message_json:
|
||||
if fields['schedulePost']:
|
||||
return NEW_POST_SUCCESS
|
||||
|
@ -1173,7 +1176,8 @@ def _receive_new_post_process_newreport(self, fields: {},
|
|||
content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood,
|
||||
translate, auto_cw_cache)
|
||||
translate, auto_cw_cache,
|
||||
curr_session)
|
||||
if message_json:
|
||||
if post_to_outbox(self, message_json,
|
||||
project_version,
|
||||
|
@ -1254,7 +1258,7 @@ def _receive_new_post_process_newquestion(self, fields: {},
|
|||
media_license_url, media_creator,
|
||||
languages_understood,
|
||||
translate,
|
||||
auto_cw_cache)
|
||||
auto_cw_cache, curr_session)
|
||||
if message_json:
|
||||
if debug:
|
||||
print('DEBUG: new Question')
|
||||
|
@ -1386,7 +1390,8 @@ def _receive_new_post_process_newreading(self, fields: {},
|
|||
translate, buy_url,
|
||||
chat_url,
|
||||
auto_cw_cache,
|
||||
fields['searchableByDropdown'])
|
||||
fields['searchableByDropdown'],
|
||||
curr_session)
|
||||
if message_json:
|
||||
if edited_postid:
|
||||
update_edited_post(base_dir, nickname, domain,
|
||||
|
|
17
epicyon.py
17
epicyon.py
|
@ -3651,6 +3651,7 @@ def _command_options() -> None:
|
|||
auto_cw_cache = {}
|
||||
test_video_transcript = ''
|
||||
searchable_by = []
|
||||
curr_session = None
|
||||
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"like this is totally just a #test man",
|
||||
|
@ -3669,7 +3670,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"Zoiks!!!",
|
||||
test_save_to_file,
|
||||
|
@ -3687,7 +3688,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"Hey scoob we need like a hundred more #milkshakes",
|
||||
test_save_to_file,
|
||||
|
@ -3705,7 +3706,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"Getting kinda spooky around here",
|
||||
test_save_to_file,
|
||||
|
@ -3723,7 +3724,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"And they would have gotten away with it too" +
|
||||
"if it wasn't for those pesky hackers",
|
||||
|
@ -3742,7 +3743,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"man these centralized sites are like the worst!",
|
||||
test_save_to_file,
|
||||
|
@ -3760,7 +3761,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"another mystery solved #test",
|
||||
test_save_to_file,
|
||||
|
@ -3778,7 +3779,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
"let's go bowling",
|
||||
test_save_to_file,
|
||||
|
@ -3796,7 +3797,7 @@ def _command_options() -> None:
|
|||
low_bandwidth, argb.content_license_url,
|
||||
argb.media_license_url, argb.media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, curr_session)
|
||||
domain_full = domain + ':' + str(port)
|
||||
clear_follows(base_dir, nickname, domain, 'following.txt')
|
||||
follow_person(base_dir, nickname, domain, 'maxboardroom', domain_full,
|
||||
|
|
4
inbox.py
4
inbox.py
|
@ -1367,7 +1367,7 @@ def _bounce_dm(sender_post_id: str, session, http_prefix: str,
|
|||
dm_license_url, '',
|
||||
languages_understood, bounce_is_chat,
|
||||
translate, buy_url, chat_url,
|
||||
auto_cw_cache)
|
||||
auto_cw_cache, session)
|
||||
if not post_json_object:
|
||||
print('WARN: unable to create bounce message to ' + sending_handle)
|
||||
return False
|
||||
|
@ -2525,7 +2525,7 @@ def _inbox_after_initial(server, inbox_start_time,
|
|||
|
||||
store_hash_tags(base_dir, handle_name, domain,
|
||||
http_prefix, domain_full,
|
||||
post_json_object, translate)
|
||||
post_json_object, translate, session)
|
||||
fitness_performance(inbox_start_time,
|
||||
server.fitness,
|
||||
'INBOX', 'store_hash_tags',
|
||||
|
|
|
@ -1873,7 +1873,7 @@ def receive_announce(recent_posts_cache: {},
|
|||
|
||||
store_hash_tags(base_dir, nickname, domain,
|
||||
http_prefix, domain_full,
|
||||
post_json_object, translate)
|
||||
post_json_object, translate, session)
|
||||
# Try to obtain the actor for this person
|
||||
# so that their avatar can be shown
|
||||
lookup_actor = None
|
||||
|
|
89
maps.py
89
maps.py
|
@ -20,6 +20,7 @@ from utils import has_object_dict
|
|||
from utils import date_utcnow
|
||||
from utils import date_epoch
|
||||
from utils import date_from_string_format
|
||||
from session import get_resolved_url
|
||||
|
||||
|
||||
def _geocoords_to_osm_link(osm_domain: str, zoom: int,
|
||||
|
@ -136,7 +137,7 @@ def _geocoords_from_osmorg_link(url: str) -> (int, float, float):
|
|||
return None, None, None
|
||||
if 'mlon=' not in url:
|
||||
return None, None, None
|
||||
if 'zoom=' not in url:
|
||||
if 'zoom=' not in url and '#map=' not in url:
|
||||
return None, None, None
|
||||
|
||||
latitude = url.split('mlat=')[1]
|
||||
|
@ -151,9 +152,15 @@ def _geocoords_from_osmorg_link(url: str) -> (int, float, float):
|
|||
if not is_float(longitude):
|
||||
return None, None, None
|
||||
|
||||
zoom = url.split('zoom=')[1]
|
||||
if '&' in zoom:
|
||||
zoom = zoom.split('&')[0]
|
||||
if 'zoom=' in url:
|
||||
zoom = url.split('zoom=')[1]
|
||||
if '&' in zoom:
|
||||
zoom = zoom.split('&')[0]
|
||||
else:
|
||||
zoom = url.split('#map=')[1]
|
||||
if '/' in zoom:
|
||||
zoom = zoom.split('/')[0]
|
||||
|
||||
if not zoom.isdigit():
|
||||
return None, None, None
|
||||
zoom = int(zoom)
|
||||
|
@ -162,6 +169,35 @@ def _geocoords_from_osmorg_link(url: str) -> (int, float, float):
|
|||
return zoom, latitude, longitude
|
||||
|
||||
|
||||
def _geocoords_from_osmorg_go_link(url: str, session) -> (int, float, float):
|
||||
"""Returns geocoordinates from an OSM go map link
|
||||
"""
|
||||
osm_domain = 'osm.org'
|
||||
if osm_domain not in url:
|
||||
return None, None, None
|
||||
if 'mlat=' in url:
|
||||
return None, None, None
|
||||
if 'mlon=' in url:
|
||||
return None, None, None
|
||||
if '/go/' not in url:
|
||||
return None, None, None
|
||||
|
||||
# TODO resolve url equivalent to
|
||||
# curl -Ls -o /dev/null -w %{url_effective} [url]
|
||||
resolved_url = get_resolved_url(session, url)
|
||||
|
||||
if not resolved_url:
|
||||
return None, None, None
|
||||
|
||||
if 'osm.org' in resolved_url:
|
||||
(zoom, latitude, longitude) = \
|
||||
_geocoords_from_osmorg_link(resolved_url)
|
||||
else:
|
||||
(zoom, latitude, longitude) = \
|
||||
_geocoords_from_osm_link(resolved_url, 'openstreetmap.org')
|
||||
return zoom, latitude, longitude
|
||||
|
||||
|
||||
def _geocoords_from_osmand_link(url: str) -> (int, float, float):
|
||||
"""Returns geocoordinates from an OSM android map link
|
||||
"""
|
||||
|
@ -383,14 +419,18 @@ def _geocoords_from_wego_link(url: str) -> (int, float, float):
|
|||
return zoom, latitude, longitude
|
||||
|
||||
|
||||
def geocoords_from_map_link(url: str,
|
||||
osm_domain: str) -> (int, float, float):
|
||||
def geocoords_from_map_link(url: str, osm_domain: str,
|
||||
session) -> (int, float, float):
|
||||
"""Returns geocoordinates from a map link url
|
||||
"""
|
||||
if osm_domain in url:
|
||||
zoom, latitude, longitude = \
|
||||
_geocoords_from_osm_link(url, osm_domain)
|
||||
return zoom, latitude, longitude
|
||||
if 'osm.org' in url and 'mlat=' not in url and '/go/' in url:
|
||||
zoom, latitude, longitude = \
|
||||
_geocoords_from_osmorg_go_link(url, session)
|
||||
return zoom, latitude, longitude
|
||||
if 'osm.org' in url and 'mlat=' in url:
|
||||
zoom, latitude, longitude = \
|
||||
_geocoords_from_osmorg_link(url)
|
||||
|
@ -424,13 +464,20 @@ def geocoords_from_map_link(url: str,
|
|||
|
||||
def html_open_street_map(url: str,
|
||||
bounding_box_degrees: float,
|
||||
translate: {},
|
||||
translate: {}, session,
|
||||
session_onion, session_i2p,
|
||||
width: str = "725",
|
||||
height: str = "650") -> str:
|
||||
"""Returns embed html for an OSM link
|
||||
"""
|
||||
osm_domain = 'openstreetmap.org'
|
||||
zoom, latitude, longitude = geocoords_from_map_link(url, osm_domain)
|
||||
map_session = session
|
||||
if '.onion/' in url:
|
||||
map_session = session_onion
|
||||
elif '.i2p/' in url:
|
||||
map_session = session_i2p
|
||||
zoom, latitude, longitude = \
|
||||
geocoords_from_map_link(url, osm_domain, map_session)
|
||||
if not latitude:
|
||||
return ''
|
||||
if not longitude:
|
||||
|
@ -524,7 +571,7 @@ def get_map_preferences_coords(base_dir: str, nickname: str,
|
|||
return None, None, None
|
||||
|
||||
|
||||
def get_map_links_from_post_content(content: str) -> []:
|
||||
def get_map_links_from_post_content(content: str, session) -> []:
|
||||
"""Returns a list of map links
|
||||
"""
|
||||
osm_domain = 'openstreetmap.org'
|
||||
|
@ -542,7 +589,8 @@ def get_map_links_from_post_content(content: str) -> []:
|
|||
url = url.split('<')[0]
|
||||
if not url:
|
||||
continue
|
||||
zoom, latitude, longitude = geocoords_from_map_link(url, osm_domain)
|
||||
zoom, latitude, longitude = \
|
||||
geocoords_from_map_link(url, osm_domain, session)
|
||||
if not latitude:
|
||||
continue
|
||||
if not longitude:
|
||||
|
@ -667,7 +715,7 @@ def _hashtag_map_to_format(base_dir: str, tag_name: str,
|
|||
start_hours_since_epoch: int,
|
||||
end_hours_since_epoch: int,
|
||||
nickname: str, domain: str,
|
||||
map_format: str) -> str:
|
||||
map_format: str, session) -> str:
|
||||
"""Returns the KML/GPX for a given hashtag between the given times
|
||||
"""
|
||||
place_ctr = 0
|
||||
|
@ -704,7 +752,7 @@ def _hashtag_map_to_format(base_dir: str, tag_name: str,
|
|||
# get the geocoordinates from the map link
|
||||
map_link = link_line[1]
|
||||
zoom, latitude, longitude = \
|
||||
geocoords_from_map_link(map_link, osm_domain)
|
||||
geocoords_from_map_link(map_link, osm_domain, session)
|
||||
if not zoom:
|
||||
continue
|
||||
if not latitude:
|
||||
|
@ -739,7 +787,8 @@ def _hashtag_map_to_format(base_dir: str, tag_name: str,
|
|||
|
||||
def _hashtag_map_within_hours(base_dir: str, tag_name: str,
|
||||
hours: int, map_format: str,
|
||||
nickname: str, domain: str) -> str:
|
||||
nickname: str, domain: str,
|
||||
session) -> str:
|
||||
"""Returns gpx/kml for a hashtag containing maps for the
|
||||
last number of hours
|
||||
"""
|
||||
|
@ -753,7 +802,8 @@ def _hashtag_map_within_hours(base_dir: str, tag_name: str,
|
|||
_hashtag_map_to_format(base_dir, tag_name,
|
||||
start_hours_since_epoch,
|
||||
end_hours_since_epoch,
|
||||
nickname, domain, map_format)
|
||||
nickname, domain, map_format,
|
||||
session)
|
||||
return map_str
|
||||
|
||||
|
||||
|
@ -777,7 +827,7 @@ def _get_tagmaps_time_periods() -> {}:
|
|||
|
||||
def map_format_from_tagmaps_path(base_dir: str, path: str,
|
||||
map_format: str,
|
||||
domain: str) -> str:
|
||||
domain: str, session) -> str:
|
||||
"""Returns gpx/kml for a given tagmaps path
|
||||
/tagmaps/tagname-time_period
|
||||
"""
|
||||
|
@ -802,13 +852,15 @@ def map_format_from_tagmaps_path(base_dir: str, path: str,
|
|||
nickname = nickname.split('/')[0]
|
||||
return _hashtag_map_within_hours(base_dir, tag_name,
|
||||
hours, map_format,
|
||||
nickname, domain)
|
||||
nickname, domain,
|
||||
session)
|
||||
return None
|
||||
|
||||
|
||||
def html_hashtag_maps(base_dir: str, tag_name: str,
|
||||
translate: {}, map_format: str,
|
||||
nickname: str, domain: str) -> str:
|
||||
nickname: str, domain: str,
|
||||
session) -> str:
|
||||
"""Returns html for maps associated with a hashtag
|
||||
"""
|
||||
tag_map_filename = base_dir + '/tagmaps/' + tag_name + '.txt'
|
||||
|
@ -822,7 +874,8 @@ def html_hashtag_maps(base_dir: str, tag_name: str,
|
|||
for period_str, hours in time_period.items():
|
||||
new_map_str = \
|
||||
_hashtag_map_within_hours(base_dir, tag_name, hours,
|
||||
map_format, nickname, domain)
|
||||
map_format, nickname, domain,
|
||||
session)
|
||||
if not new_map_str:
|
||||
continue
|
||||
if new_map_str == map_str:
|
||||
|
|
|
@ -345,7 +345,7 @@ def _hashtag_add(base_dir: str, http_prefix: str, domain_full: str,
|
|||
domain = domain.split(':')[0]
|
||||
store_hash_tags(base_dir, 'news', domain,
|
||||
http_prefix, domain_full,
|
||||
post_json_object, translate)
|
||||
post_json_object, translate, session)
|
||||
|
||||
|
||||
def _hashtag_remove(http_prefix: str, domain_full: str, post_json_object: {},
|
||||
|
@ -571,7 +571,8 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
|
|||
low_bandwidth: bool,
|
||||
content_license_url: str,
|
||||
media_license_url: str,
|
||||
media_creator: str) -> None:
|
||||
media_creator: str,
|
||||
session) -> None:
|
||||
"""Converts rss items in a newswire into posts
|
||||
"""
|
||||
if not newswire:
|
||||
|
@ -675,7 +676,7 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
|
|||
content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate,
|
||||
buy_url, chat_url)
|
||||
buy_url, chat_url, session)
|
||||
if not blog:
|
||||
continue
|
||||
|
||||
|
@ -760,7 +761,7 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
|
|||
|
||||
store_hash_tags(base_dir, 'news', domain,
|
||||
http_prefix, domain_full,
|
||||
blog, translate)
|
||||
blog, translate, session)
|
||||
|
||||
clear_from_post_caches(base_dir, recent_posts_cache, post_id)
|
||||
if save_json(blog, filename):
|
||||
|
@ -865,7 +866,8 @@ def run_newswire_daemon(base_dir: str, httpd,
|
|||
httpd.system_language,
|
||||
httpd.low_bandwidth,
|
||||
httpd.content_license_url,
|
||||
httpd.content_license_url, '')
|
||||
httpd.content_license_url, '',
|
||||
httpd.session)
|
||||
print('Newswire feed converted to ActivityPub')
|
||||
|
||||
if httpd.max_news_posts > 0:
|
||||
|
|
|
@ -523,7 +523,7 @@ def post_message_to_outbox(session, translate: {},
|
|||
|
||||
store_hash_tags(base_dir, post_to_nickname, domain,
|
||||
http_prefix, domain_full,
|
||||
message_json, translate)
|
||||
message_json, translate, session)
|
||||
|
||||
# if this is a blog post or an event then save to its own box
|
||||
if message_json['type'] == 'Create':
|
||||
|
|
54
posts.py
54
posts.py
|
@ -1521,7 +1521,7 @@ def _create_post_place_and_time(event_date: str, end_date: str,
|
|||
schedule_post: bool,
|
||||
event_uuid: str,
|
||||
location: str,
|
||||
tags: []) -> str:
|
||||
tags: [], session) -> str:
|
||||
"""Adds a place and time to the tags on a new post
|
||||
"""
|
||||
end_date_str = None
|
||||
|
@ -1579,7 +1579,8 @@ def _create_post_place_and_time(event_date: str, end_date: str,
|
|||
latitude = longitude = None
|
||||
if '://' in location:
|
||||
_, latitude, longitude = \
|
||||
geocoords_from_map_link(location, 'openstreetmap.org')
|
||||
geocoords_from_map_link(location, 'openstreetmap.org',
|
||||
session)
|
||||
if latitude and longitude:
|
||||
tags.append({
|
||||
"@context": [
|
||||
|
@ -1745,7 +1746,8 @@ def _create_post_base(base_dir: str,
|
|||
languages_understood: [], translate: {},
|
||||
buy_url: str, chat_url: str,
|
||||
auto_cw_cache: {},
|
||||
searchable_by: []) -> {}:
|
||||
searchable_by: [],
|
||||
session) -> {}:
|
||||
"""Creates a message
|
||||
"""
|
||||
content = remove_invalid_chars(content)
|
||||
|
@ -1863,7 +1865,8 @@ def _create_post_base(base_dir: str,
|
|||
_create_post_place_and_time(event_date, end_date,
|
||||
event_time, end_time,
|
||||
summary, content, schedule_post,
|
||||
event_uuid, location, tags)
|
||||
event_uuid, location, tags,
|
||||
session)
|
||||
|
||||
post_context = get_individual_post_context()
|
||||
|
||||
|
@ -2203,7 +2206,8 @@ def create_public_post(base_dir: str,
|
|||
languages_understood: [], translate: {},
|
||||
buy_url: str, chat_url: str,
|
||||
auto_cw_cache: {},
|
||||
searchable_by: []) -> {}:
|
||||
searchable_by: [],
|
||||
session) -> {}:
|
||||
"""Public post
|
||||
"""
|
||||
domain_full = get_full_domain(domain, port)
|
||||
|
@ -2239,7 +2243,8 @@ def create_public_post(base_dir: str,
|
|||
content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url,
|
||||
chat_url, auto_cw_cache, searchable_by)
|
||||
chat_url, auto_cw_cache, searchable_by,
|
||||
session)
|
||||
|
||||
|
||||
def create_reading_post(base_dir: str,
|
||||
|
@ -2262,7 +2267,7 @@ def create_reading_post(base_dir: str,
|
|||
languages_understood: [], translate: {},
|
||||
buy_url: str, chat_url: str,
|
||||
auto_cw_cache: {},
|
||||
searchable_by: []) -> {}:
|
||||
searchable_by: [], session) -> {}:
|
||||
""" reading status post
|
||||
"""
|
||||
content = ''
|
||||
|
@ -2303,7 +2308,7 @@ def create_reading_post(base_dir: str,
|
|||
media_license_url, media_creator,
|
||||
languages_understood, translate,
|
||||
buy_url, chat_url, auto_cw_cache,
|
||||
searchable_by)
|
||||
searchable_by, session)
|
||||
if post_json_object:
|
||||
post_json_object['object']['tag'] = [{
|
||||
'href': book_url,
|
||||
|
@ -2363,7 +2368,7 @@ def create_blog_post(base_dir: str,
|
|||
media_license_url: str, media_creator: str,
|
||||
languages_understood: [], translate: {},
|
||||
buy_url: str, chat_url: str,
|
||||
searchable_by: []) -> {}:
|
||||
searchable_by: [], session) -> {}:
|
||||
auto_cw_cache = {}
|
||||
blog_json = \
|
||||
create_public_post(base_dir,
|
||||
|
@ -2380,7 +2385,7 @@ def create_blog_post(base_dir: str,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
url_str = get_url_from_post(blog_json['object']['url'])
|
||||
obj_url = remove_html(url_str)
|
||||
if '/@/' not in obj_url:
|
||||
|
@ -2400,7 +2405,7 @@ def create_news_post(base_dir: str,
|
|||
low_bandwidth: bool, content_license_url: str,
|
||||
media_license_url: str, media_creator: str,
|
||||
languages_understood: [], translate: {},
|
||||
buy_url: str, chat_url: str) -> {}:
|
||||
buy_url: str, chat_url: str, session) -> {}:
|
||||
auto_cw_cache = {}
|
||||
client_to_server = False
|
||||
in_reply_to = None
|
||||
|
@ -2426,7 +2431,7 @@ def create_news_post(base_dir: str,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
blog['object']['type'] = 'Article'
|
||||
return blog
|
||||
|
||||
|
@ -2444,7 +2449,7 @@ def create_question_post(base_dir: str,
|
|||
content_license_url: str,
|
||||
media_license_url: str, media_creator: str,
|
||||
languages_understood: [], translate: {},
|
||||
auto_cw_cache: {}) -> {}:
|
||||
auto_cw_cache: {}, session) -> {}:
|
||||
"""Question post with multiple choice options
|
||||
"""
|
||||
domain_full = get_full_domain(domain, port)
|
||||
|
@ -2483,7 +2488,8 @@ def create_question_post(base_dir: str,
|
|||
content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url,
|
||||
chat_url, auto_cw_cache, searchable_by)
|
||||
chat_url, auto_cw_cache, searchable_by,
|
||||
session)
|
||||
message_json['object']['type'] = 'Question'
|
||||
message_json['object']['oneOf'] = []
|
||||
message_json['object']['votersCount'] = 0
|
||||
|
@ -2522,7 +2528,7 @@ def create_unlisted_post(base_dir: str,
|
|||
media_license_url: str, media_creator: str,
|
||||
languages_understood: [], translate: {},
|
||||
buy_url: str, chat_url: str,
|
||||
auto_cw_cache: {}) -> {}:
|
||||
auto_cw_cache: {}, session) -> {}:
|
||||
"""Unlisted post. This has the #Public and followers links inverted.
|
||||
"""
|
||||
domain_full = get_full_domain(domain, port)
|
||||
|
@ -2559,7 +2565,7 @@ def create_unlisted_post(base_dir: str,
|
|||
media_license_url, media_creator,
|
||||
languages_understood, translate,
|
||||
buy_url, chat_url, auto_cw_cache,
|
||||
searchable_by)
|
||||
searchable_by, session)
|
||||
|
||||
|
||||
def create_followers_only_post(base_dir: str,
|
||||
|
@ -2582,7 +2588,7 @@ def create_followers_only_post(base_dir: str,
|
|||
translate: {}, buy_url: str,
|
||||
chat_url: str,
|
||||
auto_cw_cache: {},
|
||||
searchable_by: []) -> {}:
|
||||
searchable_by: [], session) -> {}:
|
||||
"""Followers only post
|
||||
"""
|
||||
domain_full = get_full_domain(domain, port)
|
||||
|
@ -2615,7 +2621,7 @@ def create_followers_only_post(base_dir: str,
|
|||
media_license_url, media_creator,
|
||||
languages_understood, translate,
|
||||
buy_url, chat_url, auto_cw_cache,
|
||||
searchable_by)
|
||||
searchable_by, session)
|
||||
|
||||
|
||||
def get_mentioned_people(base_dir: str, http_prefix: str,
|
||||
|
@ -2675,7 +2681,7 @@ def create_direct_message_post(base_dir: str,
|
|||
languages_understood: [],
|
||||
dm_is_chat: bool, translate: {},
|
||||
buy_url: str, chat_url: str,
|
||||
auto_cw_cache: {}) -> {}:
|
||||
auto_cw_cache: {}, session) -> {}:
|
||||
"""Direct Message post
|
||||
"""
|
||||
content = resolve_petnames(base_dir, nickname, domain, content)
|
||||
|
@ -2716,7 +2722,7 @@ def create_direct_message_post(base_dir: str,
|
|||
content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
# mentioned recipients go into To rather than Cc
|
||||
message_json['to'] = message_json['object']['cc']
|
||||
if not isinstance(message_json['to'], list):
|
||||
|
@ -2744,7 +2750,7 @@ def create_report_post(base_dir: str,
|
|||
content_license_url: str,
|
||||
media_license_url: str, media_creator: str,
|
||||
languages_understood: [], translate: {},
|
||||
auto_cw_cache: {}) -> {}:
|
||||
auto_cw_cache: {}, session) -> {}:
|
||||
"""Send a report to moderators
|
||||
"""
|
||||
domain_full = get_full_domain(domain, port)
|
||||
|
@ -2856,7 +2862,7 @@ def create_report_post(base_dir: str,
|
|||
media_license_url, media_creator,
|
||||
languages_understood, translate,
|
||||
buy_url, chat_url, auto_cw_cache,
|
||||
searchable_by)
|
||||
searchable_by, session)
|
||||
if not post_json_object:
|
||||
continue
|
||||
|
||||
|
@ -3169,7 +3175,7 @@ def send_post(signing_priv_key_pem: str, project_version: str,
|
|||
media_license_url, media_creator,
|
||||
languages_understood,
|
||||
translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
|
||||
# get the senders private key
|
||||
private_key_pem = get_person_key(nickname, domain, base_dir,
|
||||
|
@ -3391,7 +3397,7 @@ def send_post_via_server(signing_priv_key_pem: str, project_version: str,
|
|||
media_license_url, media_creator,
|
||||
languages_understood,
|
||||
translate, buy_url, chat_url, auto_cw_cache,
|
||||
searchable_by)
|
||||
searchable_by, session)
|
||||
|
||||
auth_header = create_basic_auth_header(from_nickname, password)
|
||||
|
||||
|
|
25
session.py
25
session.py
|
@ -98,6 +98,31 @@ def url_exists(session, url: str, timeout_sec: int = 3,
|
|||
return False
|
||||
|
||||
|
||||
def get_resolved_url(session, url: str, timeout_sec: int = 20) -> {}:
|
||||
"""returns the URL after redirections
|
||||
eg. https://osm.org/go/0G0dJ91-?m=&relation=62414
|
||||
becomes
|
||||
https://www.openstreetmap.org/?mlat=53.05289268493652
|
||||
&mlon=8.644180297851562#map=11/53.05289268493652/8.644180297851562
|
||||
"""
|
||||
try:
|
||||
result = session.get(url, headers={},
|
||||
params={}, timeout=timeout_sec,
|
||||
allow_redirects=True)
|
||||
if result.url:
|
||||
if isinstance(result.url, str):
|
||||
if '://' in result.url:
|
||||
return result.url
|
||||
except ValueError as exc:
|
||||
print('EX: _get_resolved_url failed, url: ' +
|
||||
str(url) + ', ' + str(exc))
|
||||
except SocketError as exc:
|
||||
if exc.errno == errno.ECONNRESET:
|
||||
print('EX: _get_resolved_url failed, ' +
|
||||
'connection was reset during _get_resolved_url ' + str(exc))
|
||||
return None
|
||||
|
||||
|
||||
def _get_json_request(session, url: str, session_headers: {},
|
||||
session_params: {}, timeout_sec: int,
|
||||
quiet: bool, debug: bool,
|
||||
|
|
42
tests.py
42
tests.py
|
@ -809,6 +809,7 @@ def create_server_alice(path: str, domain: str, port: int,
|
|||
auto_cw_cache = {}
|
||||
test_video_transcript = ''
|
||||
searchable_by = []
|
||||
session = None
|
||||
create_public_post(path, nickname, domain, port, http_prefix,
|
||||
"No wise fish would go anywhere without a porpoise",
|
||||
test_save_to_file,
|
||||
|
@ -827,7 +828,7 @@ def create_server_alice(path: str, domain: str, port: int,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
create_public_post(path, nickname, domain, port, http_prefix,
|
||||
"Curiouser and curiouser!",
|
||||
test_save_to_file,
|
||||
|
@ -846,7 +847,7 @@ def create_server_alice(path: str, domain: str, port: int,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
create_public_post(path, nickname, domain, port, http_prefix,
|
||||
"In the gardens of memory, in the palace " +
|
||||
"of dreams, that is where you and I shall meet",
|
||||
|
@ -866,7 +867,7 @@ def create_server_alice(path: str, domain: str, port: int,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
regenerate_index_for_box(path, nickname, domain, 'outbox')
|
||||
global TEST_SERVER_ALICE_RUNNING
|
||||
TEST_SERVER_ALICE_RUNNING = True
|
||||
|
@ -1005,6 +1006,7 @@ def create_server_bob(path: str, domain: str, port: int,
|
|||
auto_cw_cache = {}
|
||||
test_video_transcript = ''
|
||||
searchable_by = []
|
||||
session = None
|
||||
create_public_post(path, nickname, domain, port, http_prefix,
|
||||
"It's your life, live it your way.",
|
||||
test_save_to_file,
|
||||
|
@ -1023,7 +1025,7 @@ def create_server_bob(path: str, domain: str, port: int,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
create_public_post(path, nickname, domain, port, http_prefix,
|
||||
"One of the things I've realised is that " +
|
||||
"I am very simple",
|
||||
|
@ -1043,7 +1045,7 @@ def create_server_bob(path: str, domain: str, port: int,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
create_public_post(path, nickname, domain, port, http_prefix,
|
||||
"Quantum physics is a bit of a passion of mine",
|
||||
test_save_to_file,
|
||||
|
@ -1062,7 +1064,7 @@ def create_server_bob(path: str, domain: str, port: int,
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
regenerate_index_for_box(path, nickname, domain, 'outbox')
|
||||
global TEST_SERVER_BOB_RUNNING
|
||||
TEST_SERVER_BOB_RUNNING = True
|
||||
|
@ -3113,6 +3115,7 @@ def _test_create_person_account(base_dir: str):
|
|||
chat_url = ''
|
||||
auto_cw_cache = {}
|
||||
searchable_by = []
|
||||
session = None
|
||||
test_post_json = \
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
content, save_to_file,
|
||||
|
@ -3128,7 +3131,7 @@ def _test_create_person_account(base_dir: str):
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
assert test_post_json
|
||||
assert test_post_json.get('object')
|
||||
assert test_post_json['object']['content']
|
||||
|
@ -3157,7 +3160,7 @@ def _test_create_person_account(base_dir: str):
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
assert test_post_json
|
||||
assert test_post_json.get('object')
|
||||
assert test_post_json['object']['content']
|
||||
|
@ -5018,6 +5021,7 @@ def _test_reply_to_public_post(base_dir: str) -> None:
|
|||
auto_cw_cache = {}
|
||||
video_transcript = ''
|
||||
searchable_by = []
|
||||
session = None
|
||||
reply = \
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
content, save_to_file,
|
||||
|
@ -5034,7 +5038,7 @@ def _test_reply_to_public_post(base_dir: str) -> None:
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
# print(str(reply))
|
||||
expected_str = \
|
||||
'<p><span class=\"h-card\">' + \
|
||||
|
@ -6064,6 +6068,7 @@ def _test_links_within_post(base_dir: str) -> None:
|
|||
auto_cw_cache = {}
|
||||
video_transcript = ''
|
||||
searchable_by = []
|
||||
session = None
|
||||
|
||||
post_json_object = \
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
|
@ -6080,7 +6085,7 @@ def _test_links_within_post(base_dir: str) -> None:
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
|
||||
expected_str = \
|
||||
'<p>This is a test post with links.<br><br>' + \
|
||||
|
@ -6127,7 +6132,7 @@ def _test_links_within_post(base_dir: str) -> None:
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
assert post_json_object['object']['content'] == content
|
||||
assert post_json_object['object']['contentMap'][system_language] == content
|
||||
|
||||
|
@ -6152,7 +6157,7 @@ def _test_links_within_post(base_dir: str) -> None:
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
if post_json_object['object']['content'] != content:
|
||||
print('content1: ' + post_json_object['object']['content'])
|
||||
print('content2: ' + content)
|
||||
|
@ -7255,6 +7260,7 @@ def _test_can_replyto(base_dir: str) -> None:
|
|||
auto_cw_cache = {}
|
||||
video_transcript = ''
|
||||
searchable_by = []
|
||||
session = None
|
||||
|
||||
post_json_object = \
|
||||
create_public_post(base_dir, nickname, domain, port, http_prefix,
|
||||
|
@ -7271,7 +7277,7 @@ def _test_can_replyto(base_dir: str) -> None:
|
|||
low_bandwidth, content_license_url,
|
||||
media_license_url, media_creator,
|
||||
languages_understood, translate, buy_url, chat_url,
|
||||
auto_cw_cache, searchable_by)
|
||||
auto_cw_cache, searchable_by, session)
|
||||
# set the date on the post
|
||||
curr_date_str = "2021-09-08T20:45:00Z"
|
||||
post_json_object['published'] = curr_date_str
|
||||
|
@ -8096,7 +8102,8 @@ def _test_hashtag_maps():
|
|||
"<p>This is a test, with a geo link " + \
|
||||
"geo:52.90820,-3.59817;u=35, and some other stuff," + \
|
||||
" with commas</p>"
|
||||
map_links = get_map_links_from_post_content(content)
|
||||
session = None
|
||||
map_links = get_map_links_from_post_content(content, session)
|
||||
link = "geo:52.90820,-3.59817"
|
||||
if link not in map_links:
|
||||
print('map_links: ' + str(map_links))
|
||||
|
@ -8125,11 +8132,12 @@ def _test_hashtag_maps():
|
|||
"epicyon.libreserver.org/tags/AnotherHashtag\" " + \
|
||||
"class=\"mention hashtag\" rel=\"tag\" tabindex=\"10\">#" + \
|
||||
"<span>AnotherHashtag</span></a></p>"
|
||||
map_links = get_map_links_from_post_content(content)
|
||||
map_links = get_map_links_from_post_content(content, session)
|
||||
link = "www.google.com/maps/@52.217291,-3.0811865,20.04z"
|
||||
assert link in map_links
|
||||
session = None
|
||||
zoom, latitude, longitude = \
|
||||
geocoords_from_map_link(link, 'openstreetmap.org')
|
||||
geocoords_from_map_link(link, 'openstreetmap.org', session)
|
||||
assert zoom == 20
|
||||
assert latitude
|
||||
assert int(latitude * 1000) == 52217
|
||||
|
@ -8138,7 +8146,7 @@ def _test_hashtag_maps():
|
|||
link = "www.openstreetmap.org/#map=19/52.90860/-3.59917"
|
||||
assert link in map_links
|
||||
zoom, latitude, longitude = \
|
||||
geocoords_from_map_link(link, 'openstreetmap.org')
|
||||
geocoords_from_map_link(link, 'openstreetmap.org', session)
|
||||
assert zoom == 19
|
||||
assert latitude
|
||||
assert int(latitude * 1000) == 52908
|
||||
|
|
|
@ -117,7 +117,8 @@ def _html_calendar_day(person_cache: {}, translate: {},
|
|||
nickname: str, domain: str, day_events: [],
|
||||
month_name: str, actor: str,
|
||||
theme: str, access_keys: {},
|
||||
system_language: str) -> str:
|
||||
system_language: str,
|
||||
session, session_onion, session_i2p) -> str:
|
||||
"""Show a day within the calendar
|
||||
"""
|
||||
account_dir = acct_dir(base_dir, nickname, domain)
|
||||
|
@ -232,7 +233,9 @@ def _html_calendar_day(person_cache: {}, translate: {},
|
|||
event_map = \
|
||||
html_open_street_map(event_place,
|
||||
bounding_box_degrees,
|
||||
translate,
|
||||
translate, session,
|
||||
session_onion,
|
||||
session_i2p,
|
||||
'320', '320')
|
||||
if event_map:
|
||||
event_place = event_map
|
||||
|
@ -354,7 +357,8 @@ def html_calendar(person_cache: {}, translate: {},
|
|||
http_prefix: str, domain_full: str,
|
||||
text_mode_banner: str, access_keys: {},
|
||||
icalendar: bool, system_language: str,
|
||||
default_timeline: str, theme: str) -> str:
|
||||
default_timeline: str, theme: str,
|
||||
session, session_onion, session_i2p) -> str:
|
||||
"""Show the calendar for a person
|
||||
"""
|
||||
domain = remove_domain_port(domain_full)
|
||||
|
@ -441,7 +445,8 @@ def html_calendar(person_cache: {}, translate: {},
|
|||
nickname, domain, day_events,
|
||||
month_name, actor,
|
||||
theme, access_keys,
|
||||
system_language)
|
||||
system_language, session,
|
||||
session_onion, session_i2p)
|
||||
|
||||
if icalendar:
|
||||
return get_month_events_icalendar(base_dir, nickname, domain,
|
||||
|
|
|
@ -338,7 +338,8 @@ def _update_cached_hashtag_swarm(base_dir: str, nickname: str, domain: str,
|
|||
|
||||
def store_hash_tags(base_dir: str, nickname: str, domain: str,
|
||||
http_prefix: str, domain_full: str,
|
||||
post_json_object: {}, translate: {}) -> None:
|
||||
post_json_object: {}, translate: {},
|
||||
session) -> None:
|
||||
"""Extracts hashtags from an incoming post and updates the
|
||||
relevant tags files.
|
||||
"""
|
||||
|
@ -366,14 +367,14 @@ def store_hash_tags(base_dir: str, nickname: str, domain: str,
|
|||
if 'content' in post_json_object['object']:
|
||||
published = post_json_object['object']['published']
|
||||
post_content = post_json_object['object']['content']
|
||||
map_links += get_map_links_from_post_content(post_content)
|
||||
map_links += get_map_links_from_post_content(post_content, session)
|
||||
# get geolocation from tags
|
||||
location_str = get_location_from_post(post_json_object)
|
||||
if location_str:
|
||||
if resembles_url(location_str):
|
||||
zoom, latitude, longitude = \
|
||||
geocoords_from_map_link(location_str,
|
||||
'openstreetmap.org')
|
||||
'openstreetmap.org', session)
|
||||
if latitude and longitude and zoom and \
|
||||
location_str not in map_links:
|
||||
map_links.append(location_str)
|
||||
|
|
|
@ -2982,7 +2982,8 @@ def individual_post_as_html(signing_priv_key_pem: str,
|
|||
map_str = \
|
||||
html_open_street_map(location_str,
|
||||
bounding_box_degrees,
|
||||
translate)
|
||||
translate, session,
|
||||
session, session)
|
||||
if map_str:
|
||||
map_str = '<center>\n' + map_str + '</center>\n'
|
||||
attrib = None
|
||||
|
@ -3009,7 +3010,8 @@ def individual_post_as_html(signing_priv_key_pem: str,
|
|||
# remember the coordinates
|
||||
map_zoom, map_latitude, map_longitude = \
|
||||
geocoords_from_map_link(location_str,
|
||||
'openstreetmap.org')
|
||||
'openstreetmap.org',
|
||||
session)
|
||||
if map_zoom and map_latitude and map_longitude:
|
||||
set_map_preferences_coords(base_dir, nickname, domain,
|
||||
map_latitude, map_longitude,
|
||||
|
|
|
@ -953,7 +953,7 @@ def html_hashtag_search(nickname: str, domain: str, port: int,
|
|||
|
||||
# maps for geolocations with this hashtag
|
||||
maps_str = html_hashtag_maps(base_dir, hashtag, translate, map_format,
|
||||
nickname, domain)
|
||||
nickname, domain, session)
|
||||
if maps_str:
|
||||
maps_str = '<center>' + maps_str + '</center>\n'
|
||||
hashtag_search_form += maps_str
|
||||
|
|
Loading…
Reference in New Issue