|
@@ -1,9 +1,9 @@
|
|
|
|
|
|
|
|
|
|
import argparse
|
|
import argparse
|
|
-import io
|
|
|
|
import json
|
|
import json
|
|
import logging
|
|
import logging
|
|
|
|
+import os
|
|
import pathlib
|
|
import pathlib
|
|
import random
|
|
import random
|
|
import typing
|
|
import typing
|
|
@@ -65,6 +65,7 @@ def _photo_command(
|
|
)
|
|
)
|
|
while True:
|
|
while True:
|
|
photo = random.choice(context.bot_data["photos"])
|
|
photo = random.choice(context.bot_data["photos"])
|
|
|
|
+ _LOGGER.info("sending %s", photo)
|
|
try:
|
|
try:
|
|
with urllib.request.urlopen(photo.photo_url) as photo_response:
|
|
with urllib.request.urlopen(photo.photo_url) as photo_response:
|
|
photo_message = update.effective_chat.send_photo(
|
|
photo_message = update.effective_chat.send_photo(
|
|
@@ -120,19 +121,39 @@ class _Persistence(telegram.ext.BasePersistence):
|
|
pass
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+class _EnvDefaultArgparser(argparse.ArgumentParser):
|
|
|
|
+ def add_argument(self, *args, envvar=None, **kwargs):
|
|
|
|
+
|
|
|
|
+ if envvar:
|
|
|
|
+ envvar_value = os.environ.get(envvar, None)
|
|
|
|
+ if envvar_value:
|
|
|
|
+ kwargs["required"] = False
|
|
|
|
+ kwargs["default"] = envvar_value
|
|
|
|
+ super().add_argument(*args, **kwargs)
|
|
|
|
+
|
|
|
|
+
|
|
def _main():
|
|
def _main():
|
|
logging.basicConfig(
|
|
logging.basicConfig(
|
|
level=logging.DEBUG,
|
|
level=logging.DEBUG,
|
|
format="%(asctime)s:%(levelname)s:%(name)s:%(funcName)s:%(message)s",
|
|
format="%(asctime)s:%(levelname)s:%(name)s:%(funcName)s:%(message)s",
|
|
datefmt="%Y-%m-%dT%H:%M:%S%z",
|
|
datefmt="%Y-%m-%dT%H:%M:%S%z",
|
|
)
|
|
)
|
|
- argparser = argparse.ArgumentParser()
|
|
+ argparser = _EnvDefaultArgparser()
|
|
- argparser.add_argument("--token-path", type=pathlib.Path, required=True)
|
|
+ argparser.add_argument(
|
|
|
|
+ "--telegram-token-path",
|
|
|
|
+ type=pathlib.Path,
|
|
|
|
+ required=True,
|
|
|
|
+ envvar="TELEGRAM_TOKEN_PATH",
|
|
|
|
+ help="default: env var TELEGRAM_TOKEN_PATH",
|
|
|
|
+ )
|
|
argparser.add_argument(
|
|
argparser.add_argument(
|
|
"--wikimap-export-path",
|
|
"--wikimap-export-path",
|
|
type=pathlib.Path,
|
|
type=pathlib.Path,
|
|
required=True,
|
|
required=True,
|
|
- help="https://wikimap.toolforge.org/api.php?[...] json",
|
|
+ envvar="WIKIMAP_EXPORT_PATH",
|
|
|
|
+ help="https://wikimap.toolforge.org/api.php?[...] json, "
|
|
|
|
+ "default: env var WIKIMAP_EXPORT_PATH",
|
|
)
|
|
)
|
|
args = argparser.parse_args()
|
|
args = argparser.parse_args()
|
|
_LOGGER.debug("args=%r", args)
|
|
_LOGGER.debug("args=%r", args)
|
|
@@ -141,7 +162,7 @@ def _main():
|
|
for attrs in json.loads(args.wikimap_export_path.read_text())
|
|
for attrs in json.loads(args.wikimap_export_path.read_text())
|
|
]
|
|
]
|
|
updater = telegram.ext.Updater(
|
|
updater = telegram.ext.Updater(
|
|
- token=args.token_path.read_text().rstrip(),
|
|
+ token=args.telegram_token_path.read_text().rstrip(),
|
|
use_context=True,
|
|
use_context=True,
|
|
persistence=_Persistence(photos=photos),
|
|
persistence=_Persistence(photos=photos),
|
|
)
|
|
)
|