|
# retoor <retoor@molodetz.nl>
|
|
|
|
import os
|
|
import time
|
|
|
|
from client import from_env
|
|
|
|
POLL_SECONDS = int(os.environ.get("DEVRANT_POLL_SECONDS", "30"))
|
|
UPVOTE_KEYWORDS = [
|
|
word.strip().lower()
|
|
for word in os.environ.get("DEVRANT_UPVOTE_KEYWORDS", "").split(",")
|
|
if word.strip()
|
|
]
|
|
|
|
|
|
def main() -> None:
|
|
api = from_env()
|
|
if api.username and api.password:
|
|
api.login()
|
|
seen: set[int] = set()
|
|
print(f"watching feed every {POLL_SECONDS}s (ctrl-c to stop)")
|
|
while True:
|
|
for rant in reversed(api.rants(sort="recent", limit=20)):
|
|
rant_id = rant["id"]
|
|
if rant_id in seen:
|
|
continue
|
|
seen.add(rant_id)
|
|
text = rant["text"].replace("\n", " ")[:80]
|
|
print(f"[{rant_id}] {rant['user_username']}: {text}")
|
|
if UPVOTE_KEYWORDS and api.auth:
|
|
lowered = rant["text"].lower()
|
|
if any(word in lowered for word in UPVOTE_KEYWORDS):
|
|
api.vote_rant(rant_id, 1)
|
|
print(f" upvoted {rant_id}")
|
|
time.sleep(POLL_SECONDS)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|