-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtelescreen.py
More file actions
70 lines (59 loc) · 1.98 KB
/
telescreen.py
File metadata and controls
70 lines (59 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"""
copyright: 2019 Meisam@wikimedia, MichaelSchoenitzer@wikimedia
This file is part of Telescreen: A slideshow script for the WikiMUC
Telescreen is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Telescreen is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Telescreen. If not, see <https://www.gnu.org/licenses/>.
"""
import argparse
import logging
import sys
from pathlib import Path
from selenium import webdriver
import ci_tests
import configs
from slides import Slides
CLI_PARSER = argparse.ArgumentParser()
CLI_PARSER.add_argument(
"-dir",
help="directory of images",
nargs="?",
dest="working_directory",
default=Path.cwd(),
)
CLI_PARSER.add_argument(
"-w",
"--wait",
help="Waiting time between each slide update",
type=int,
dest="slides_refresh_time",
default=30,
)
CLI_PARSER.add_argument(
"--headless_test", action="store_true", help="Run the functionality tests"
)
ARGS = CLI_PARSER.parse_args()
configs.slides_refresh_time = ARGS.slides_refresh_time
configs.working_directory = Path(ARGS.working_directory)
if ARGS.headless_test:
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
logging.getLogger("").addHandler(console)
return_code = 0
return_code += ci_tests.test_list()
return_code += ci_tests.test_cache_renewal()
return_code += ci_tests.test_errors()
sys.exit(return_code)
SLIDESHOW = Slides()
SLIDESHOW.browser = webdriver.Firefox()
SLIDESHOW.browser.fullscreen_window()
while True:
SLIDESHOW.update_slides()
SLIDESHOW.play()