mirror of
https://github.com/HyPnoTiiK/stream-fusion.git
synced 2026-08-06 19:18:44 +00:00
51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
import aiohttp
|
||
from typing import Optional
|
||
|
||
from stream_fusion.logging_config import logger
|
||
|
||
|
||
class MetadataProvider:
|
||
|
||
def __init__(self, config, session: Optional[aiohttp.ClientSession] = None):
|
||
self.config = config
|
||
self.logger = logger
|
||
self._external_session = session is not None
|
||
self._session = session
|
||
self._timeout = aiohttp.ClientTimeout(total=10)
|
||
|
||
async def _get_session(self) -> aiohttp.ClientSession:
|
||
if self._session is None or self._session.closed:
|
||
self._session = aiohttp.ClientSession(timeout=self._timeout)
|
||
self._external_session = False
|
||
return self._session
|
||
|
||
async def close(self):
|
||
if self._session and not self._external_session and not self._session.closed:
|
||
await self._session.close()
|
||
|
||
def replace_weird_characters(self, string):
|
||
corresp = {
|
||
'ā': 'a', 'ă': 'a', 'ą': 'a', 'ć': 'c', 'č': 'c', 'ç': 'c',
|
||
'ĉ': 'c', 'ċ': 'c', 'ď': 'd', 'đ': 'd', 'è': 'e', 'é': 'e',
|
||
'ê': 'e', 'ë': 'e', 'ē': 'e', 'ĕ': 'e', 'ę': 'e', 'ě': 'e',
|
||
'ĝ': 'g', 'ğ': 'g', 'ġ': 'g', 'ģ': 'g', 'ĥ': 'h', 'î': 'i',
|
||
'ï': 'i', 'ì': 'i', 'í': 'i', 'ī': 'i', 'ĩ': 'i', 'ĭ': 'i',
|
||
'ı': 'i', 'ĵ': 'j', 'ķ': 'k', 'ĺ': 'l', 'ļ': 'l', 'ł': 'l',
|
||
'ń': 'n', 'ň': 'n', 'ñ': 'n', 'ņ': 'n', 'ʼn': 'n', 'ó': 'o',
|
||
'ô': 'o', 'õ': 'o', 'ö': 'o', 'ø': 'o', 'ō': 'o', 'ő': 'o',
|
||
'œ': 'oe', 'ŕ': 'r', 'ř': 'r', 'ŗ': 'r', 'š': 's', 'ş': 's',
|
||
'ś': 's', 'ș': 's', 'ß': 'ss', 'ť': 't', 'ţ': 't', 'ū': 'u',
|
||
'ŭ': 'u', 'ũ': 'u', 'û': 'u', 'ü': 'u', 'ù': 'u', 'ú': 'u',
|
||
'ų': 'u', 'ű': 'u', 'ŵ': 'w', 'ý': 'y', 'ÿ': 'y', 'ŷ': 'y',
|
||
'ž': 'z', 'ż': 'z', 'ź': 'z', 'æ': 'ae', 'ǎ': 'a', 'ǧ': 'g',
|
||
'ə': 'e', 'ƒ': 'f', 'ǐ': 'i', 'ǒ': 'o', 'ǔ': 'u', 'ǚ': 'u',
|
||
'ǜ': 'u', 'ǹ': 'n', 'ǻ': 'a', 'ǽ': 'ae', 'ǿ': 'o',
|
||
}
|
||
|
||
for weird_char in corresp:
|
||
string = string.replace(weird_char, corresp[weird_char])
|
||
|
||
return string
|
||
|
||
def get_metadata(self, id, type):
|
||
raise NotImplementedError
|