forked from KayFaraday/pleroma-ebooks
Compare commits
3 Commits
879eb32b2d
...
970903c3c0
Author | SHA1 | Date |
---|---|---|
PeachyDelight | 970903c3c0 | |
Kay Faraday | 5e50bccd53 | |
Kay Faraday | bc5e8af32b |
|
@ -4,7 +4,6 @@
|
|||
import sys
|
||||
import anyio
|
||||
import aiohttp
|
||||
import platform
|
||||
import pendulum
|
||||
import operator
|
||||
import aiosqlite
|
||||
|
@ -14,15 +13,9 @@ from pleroma import Pleroma
|
|||
from bs4 import BeautifulSoup
|
||||
from functools import partial
|
||||
from typing import Iterable, NewType
|
||||
from utils import shield, HandleRateLimits, suppress
|
||||
from utils import shield, HandleRateLimits, suppress, http_session_factory
|
||||
from third_party.utils import extract_post_content
|
||||
|
||||
USER_AGENT = (
|
||||
'pleroma-ebooks; '
|
||||
f'{aiohttp.__version__}; '
|
||||
f'{platform.python_implementation()}/{platform.python_version()}'
|
||||
)
|
||||
|
||||
UTC = pendulum.timezone('UTC')
|
||||
JSON_CONTENT_TYPE = 'application/json'
|
||||
ACTIVITYPUB_CONTENT_TYPE = 'application/activity+json'
|
||||
|
@ -40,9 +33,8 @@ class PostFetcher:
|
|||
Pleroma(api_base_url=self.config['site'], access_token=self.config['access_token']),
|
||||
)
|
||||
self._http = await stack.enter_async_context(
|
||||
aiohttp.ClientSession(
|
||||
http_session_factory(
|
||||
headers={
|
||||
'User-Agent': USER_AGENT,
|
||||
'Accept': ', '.join([JSON_CONTENT_TYPE, ACTIVITYPUB_CONTENT_TYPE]),
|
||||
},
|
||||
trust_env=True,
|
||||
|
|
|
@ -4,6 +4,8 @@ import sqlite3
|
|||
from random import expovariate
|
||||
import typing
|
||||
import aiohttp
|
||||
from utils import http_session_factory
|
||||
|
||||
|
||||
async def make_sentence(cfg):
|
||||
# set default
|
||||
|
@ -81,8 +83,8 @@ async def make_sentence(cfg):
|
|||
# using aiohttp
|
||||
|
||||
post = None
|
||||
while post is None:
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with http_session_factory() as session:
|
||||
while post is None:
|
||||
async with session.post(
|
||||
"https://api.textsynth.com/v1/engines/{}/completions".format(cfg["textsynth_engine_id"]),
|
||||
headers={
|
||||
|
@ -103,14 +105,14 @@ async def make_sentence(cfg):
|
|||
continue
|
||||
post: str = data["text"]
|
||||
|
||||
# check wether the post only consists of mentions
|
||||
# split by words
|
||||
words = post.split()
|
||||
# check if all words are mentions
|
||||
if all(word.startswith("@") for word in words):
|
||||
# generate a new sentence
|
||||
post = None
|
||||
continue
|
||||
# check wether the post only consists of mentions
|
||||
# split by words
|
||||
words = post.split()
|
||||
# check if all words are mentions
|
||||
if all(word.startswith("@") for word in words):
|
||||
# generate a new sentence
|
||||
post = None
|
||||
continue
|
||||
|
||||
db.close()
|
||||
|
||||
|
|
12
pleroma.py
12
pleroma.py
|
@ -6,17 +6,7 @@ import json
|
|||
import hashlib
|
||||
import aiohttp
|
||||
from http import HTTPStatus
|
||||
|
||||
def http_session_factory(headers={}):
|
||||
py_version = '.'.join(map(str, sys.version_info))
|
||||
user_agent = (
|
||||
'pleroma-ebooks (https://lab.freak.university/KayFaraday/pleroma-ebooks); '
|
||||
'aiohttp/{aiohttp.__version__}; '
|
||||
'python/{py_version}'
|
||||
)
|
||||
return aiohttp.ClientSession(
|
||||
headers={'User-Agent': user_agent, **headers},
|
||||
)
|
||||
from utils import http_session_factory
|
||||
|
||||
class BadRequest(Exception):
|
||||
pass
|
||||
|
|
13
utils.py
13
utils.py
|
@ -1,10 +1,23 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import anyio
|
||||
import aiohttp
|
||||
import platform
|
||||
import contextlib
|
||||
from functools import wraps
|
||||
from datetime import datetime, timezone
|
||||
|
||||
def http_session_factory(headers={}, **kwargs):
|
||||
user_agent = (
|
||||
'pleroma-ebooks (https://lab.freak.university/KayFaraday/pleroma-ebooks); '
|
||||
f'aiohttp/{aiohttp.__version__}; '
|
||||
f'{platform.python_implementation()}/{platform.python_version()}'
|
||||
)
|
||||
return aiohttp.ClientSession(
|
||||
headers={'User-Agent': user_agent, **headers},
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def as_corofunc(f):
|
||||
@wraps(f)
|
||||
async def wrapped(*args, **kwargs):
|
||||
|
|
Loading…
Reference in New Issue