Introduce websocket cmd for SuchWow so that it can dynamically add/update new images and change FeatherTask to WowletTask

This commit is contained in:
dsc 2021-05-03 00:36:44 +02:00
parent 136e7909fa
commit 891baaff71
10 changed files with 23 additions and 22 deletions

View file

@ -8,7 +8,7 @@ import random
from typing import Union
class FeatherTask:
class WowletTask:
"""
The base class of many recurring tasks for this
project. This abstracts away some functionality:

View file

@ -9,10 +9,10 @@ from functools import partial
import settings
from wowlet_backend.utils import httpget, popularity_contest
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class BlockheightTask(FeatherTask):
class BlockheightTask(WowletTask):
"""
Fetch latest blockheight using webcrawling. We pick the most popular
height from a list of websites. Arguably this approach has benefits

View file

@ -12,10 +12,10 @@ import aiofiles
import settings
from wowlet_backend.utils import httpget
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class HistoricalPriceTask(FeatherTask):
class HistoricalPriceTask(WowletTask):
"""
This class manages a historical price (USD) database, saved in a
textfile at `self._path`. A Feather wallet instance will ask

View file

@ -7,10 +7,10 @@ from typing import List
import settings
from wowlet_backend.utils import httpget
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class FundingProposalsTask(FeatherTask):
class FundingProposalsTask(WowletTask):
"""Fetch funding proposals made by the community."""
def __init__(self, interval: int = 600):
from wowlet_backend.factory import app

View file

@ -6,10 +6,10 @@ from typing import List, Union
import settings
from wowlet_backend.utils import httpget
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class CryptoRatesTask(FeatherTask):
class CryptoRatesTask(WowletTask):
def __init__(self, interval: int = 180):
super(CryptoRatesTask, self).__init__(interval)

View file

@ -6,10 +6,10 @@ from datetime import datetime, timedelta
import re
from wowlet_backend.utils import httpget
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class FiatRatesTask(FeatherTask):
class FiatRatesTask(WowletTask):
def __init__(self, interval: int = 43200):
super(FiatRatesTask, self).__init__(interval)

View file

@ -5,10 +5,10 @@
import html
import settings
from wowlet_backend.utils import httpget
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class RedditTask(FeatherTask):
class RedditTask(WowletTask):
def __init__(self, interval: int = 900):
from wowlet_backend.factory import app
super(RedditTask, self).__init__(interval)

View file

@ -7,10 +7,10 @@ from typing import List
import settings
from wowlet_backend.utils import httpget, popularity_contest
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class RPCNodeCheckTask(FeatherTask):
class RPCNodeCheckTask(WowletTask):
def __init__(self, interval: int = 60):
super(RPCNodeCheckTask, self).__init__(interval)

View file

@ -14,11 +14,11 @@ from bs4 import BeautifulSoup
import settings
from wowlet_backend.utils import httpget, image_resize
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class SuchWowTask(FeatherTask):
def __init__(self, interval: int = 600):
class SuchWowTask(WowletTask):
def __init__(self, interval: int = 300):
"""
This task is specifically for Wownero - fetching a listing
of recent SuchWow submissions.
@ -31,15 +31,16 @@ class SuchWowTask(FeatherTask):
self._http_endpoint = "https://suchwow.xyz/"
self._tmp_dir = os.path.join(settings.cwd, "data", "suchwow")
self._websocket_cmd = "suchwow"
if not os.path.exists(self._tmp_dir):
os.mkdir(self._tmp_dir)
async def task(self):
from wowlet_backend.factory import app
result = await httpget(f"{self._http_endpoint}api/list", json=True)
result = await httpget(f"{self._http_endpoint}api/list?limit=15&offset=0", json=True)
result = list(sorted(result, key=lambda k: k['id'], reverse=True))
result = result[:15]
for post in result:
post_id = int(post['id'])

View file

@ -6,10 +6,10 @@ from dateutil.parser import parse
import settings
from wowlet_backend.utils import httpget
from wowlet_backend.tasks import FeatherTask
from wowlet_backend.tasks import WowletTask
class XmrigTask(FeatherTask):
class XmrigTask(WowletTask):
"""Fetches the latest XMRig releases using Github's API"""
def __init__(self, interval: int = 43200):
super(XmrigTask, self).__init__(interval)