Skip to content

Commit 83e982c

Browse files
committed
Merge PR maubot#42
1 parent b58202e commit 83e982c

File tree

3 files changed

+78
-1
lines changed

3 files changed

+78
-1
lines changed

rss/__pycache__/db.d.er

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
##[pylyzer] failed /mnt/chromeos/MyFiles/data/projects/tools/maubot-rss/rss/db.py 1717649584 8622
2+
.___v_desugar_1: Never
3+
.annotations: Never
4+
.___v_desugar_2: Never
5+
.datetime: Never
6+
.___v_desugar_3: Never
7+
.Template: {<failure>}
8+
.___v_desugar_4: Never
9+
.Record: {<failure>}
10+
.___v_desugar_5: Never
11+
.dataclass: Never
12+
.attr: Never
13+
14+
.___v_desugar_6: Never
15+
.RoomID: {<failure>}
16+
.UserID: {<failure>}
17+
.___v_desugar_7: Never
18+
.Database: {<failure>}
19+
.Scheme: {<failure>}
20+
.___v_desugar_8: Never
21+
.SQLiteCursor: {<failure>}
22+
23+
.Subscription: ClassType
24+
.Subscription.room_id: Failure
25+
.Subscription.send_notice: Bool
26+
.Subscription.user_id: Failure
27+
.Subscription.notification_template: Failure
28+
.Subscription.feed_id: Int
29+
.Subscription.__call__: () -> .Subscription
30+
.Subscription.from_row: (cls: () -> .Subscription or NoneType, row: NoneType) -> .Subscription or NoneType
31+
32+
.Feed: ClassType
33+
.Feed.title: Str
34+
.Feed.subtitle: Str
35+
.Feed.link: Str
36+
.Feed.url: Str
37+
.Feed.id: Int
38+
.Feed.__call__: () -> .Feed
39+
.Feed.next_retry: Int
40+
.Feed.error_count: Int
41+
.Feed.subscriptions: Never
42+
.Feed.from_row: (cls: () -> .Feed or NoneType, row: NoneType) -> .Feed or NoneType
43+
44+
.date_fmt: {"Type_Y-Type_m-Type_d Type_H:Type_M:Type_S"}
45+
.date_fmt_microseconds: {"Type_Y-Type_m-Type_d Type_H:Type_M:Type_S.Type_f"}
46+
.Entry: ClassType
47+
.Entry.title: Str
48+
.Entry.id: Str
49+
.Entry.summary: Str
50+
.Entry.link: Str
51+
.Entry.feed_id: Int
52+
.Entry.date: Failure
53+
.Entry.__call__: () -> .Entry
54+
.Entry.from_row: (cls: () -> .Entry or NoneType, row: NoneType) -> .Entry or NoneType
55+
56+
.DBManager: ClassType
57+
.DBManager.db: Failure
58+
.DBManager.__call__: (db: Obj) -> .DBManager
59+

rss/__pycache__/migrations.d.er

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
##[pylyzer] failed /mnt/chromeos/MyFiles/data/projects/tools/maubot-rss/rss/migrations.py 1717649584 2742
2+
.___v_desugar_1: Never
3+
.Connection: {<failure>}
4+
.Scheme: {<failure>}
5+
.UpgradeTable: {<failure>}
6+
.upgrade_table: Never
7+
8+
9+

rss/bot.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from __future__ import annotations
1717

1818
from typing import Any, Iterable
19-
from datetime import datetime
19+
from datetime import datetime, timedelta
2020
from string import Template
2121
from time import mktime, time
2222
import asyncio
@@ -76,6 +76,7 @@ class RSSBot(Plugin):
7676
poll_task: asyncio.Future
7777
http: aiohttp.ClientSession
7878
power_level_cache: dict[RoomID, tuple[int, PowerLevelStateEventContent]]
79+
next_run: datetime
7980

8081
@classmethod
8182
def get_config_class(cls) -> type[BaseProxyConfig]:
@@ -186,6 +187,7 @@ async def _poll_feeds(self) -> None:
186187
self.log.debug("Polling stopped")
187188
except Exception:
188189
self.log.exception("Error while polling feeds")
190+
self.next_run = datetime.now() + timedelta(seconds=(self.config["update_interval"]*60))
189191
await asyncio.sleep(self.config["update_interval"] * 60)
190192

191193
async def try_parse_feed(self, feed: Feed | None = None) -> tuple[Feed, list[Entry]]:
@@ -342,6 +344,13 @@ async def can_manage(self, evt: MessageEvent) -> bool:
342344
async def rss(self) -> None:
343345
pass
344346

347+
@rss.subcommand("nextrun", aliases=("n",), help="Get latest item for each feed.")
348+
async def next_run(self, evt: MessageEvent) -> None:
349+
await evt.reply(f"""Next polling in {self.next_run - datetime.now()}""")
350+
# Next polling @ {self.next_run}
351+
# Now: {datetime.now()}
352+
# Delta: {self.next_run - datetime.now()}
353+
345354
@rss.subcommand("subscribe", aliases=("s", "sub"), help="Subscribe this room to a feed.")
346355
@command.argument("url", "feed URL", pass_raw=True)
347356
async def subscribe(self, evt: MessageEvent, url: str) -> None:

0 commit comments

Comments
 (0)