mirror of https://gitlab.com/bashrc2/epicyon
Use sha256 for stamp number to avoid collisions
parent
3e3ffc51c1
commit
f190f0ec8c
|
|
@ -283,13 +283,18 @@ def get_featured_collections_feed(base_dir: str,
|
|||
|
||||
def store_feature_authorization(base_dir: str, nickname: str, domain: str,
|
||||
featured_item: {}) -> bool:
|
||||
"""Stores a feature authorization
|
||||
"""Stores a feature authorization after receiving a request for a
|
||||
particular actor or hashtag
|
||||
"""
|
||||
if not featured_item.get('featureAuthorization'):
|
||||
return False
|
||||
if not isinstance(featured_item['featureAuthorization'], str):
|
||||
return False
|
||||
accounts_dir: str = acct_dir(base_dir, nickname, domain)
|
||||
if not is_a_dir(accounts_dir + '/stamps'):
|
||||
makedir(accounts_dir + '/stamps')
|
||||
stamp_id = featured_item['featureAuthorization'].split('/')[1]
|
||||
feature_authorization_filename = accounts_dir + '/' + stamp_id
|
||||
stamp_id = url_text_to_number(featured_item['featureAuthorization'])
|
||||
feature_authorization_filename = accounts_dir + '/stamps/' + stamp_id
|
||||
if not is_a_file(feature_authorization_filename):
|
||||
return False
|
||||
return save_json(featured_item, feature_authorization_filename)
|
||||
|
|
|
|||
16
src/utils.py
16
src/utils.py
|
|
@ -17,6 +17,7 @@ import datetime
|
|||
import json
|
||||
import locale
|
||||
import idna
|
||||
import base64
|
||||
from cryptography.hazmat.backends import default_backend
|
||||
from cryptography.hazmat.primitives import hashes
|
||||
from src.followingCalendar import add_person_to_calendar
|
||||
|
|
@ -58,8 +59,6 @@ INVALID_ACTOR_URL_CHARACTERS = (
|
|||
';', '='
|
||||
)
|
||||
|
||||
URL_TEXT_MAGIC_NUMBER = 7439
|
||||
|
||||
|
||||
def is_account_dir(dir_name: str) -> bool:
|
||||
"""Is the given directory an account within /accounts ?
|
||||
|
|
@ -4381,14 +4380,5 @@ def get_preferred_username(actor: {}, system_language: str) -> str:
|
|||
def url_text_to_number(url: str) -> str:
|
||||
"""converts url text or collection name to a number string used as an id
|
||||
"""
|
||||
result = ''
|
||||
for char in url:
|
||||
num = ord(char)
|
||||
if num > 99:
|
||||
continue
|
||||
if num > 9:
|
||||
result = str(num) + result
|
||||
else:
|
||||
result = '0' + str(num) + result
|
||||
num = (URL_TEXT_MAGIC_NUMBER + int(result)) % 9999999999999999999999999999
|
||||
return str(num)
|
||||
hash_result = get_sha_256(url)
|
||||
return base64.b64encode(hash_result).decode('utf-8')
|
||||
|
|
|
|||
Loading…
Reference in New Issue