Compare commits

..

212 Commits

Author SHA1 Message Date
3c9b8ba3f9 Trigger bot build process
All checks were successful
build
2023-03-28 12:04:22 +02:00
8f685e923e Fixed condition in bot build step 2023-03-28 12:03:59 +02:00
2219ad209d Trigger api and bot build process
All checks were successful
build
2023-03-28 11:58:14 +02:00
ded175cdd2 Use Gitea actions instead of woodpecker and updated dependencies
All checks were successful
build
2023-03-28 11:38:50 +02:00
c2cc959309 Test different port
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/push/pipeline Pipeline failed
2023-02-19 19:54:37 +01:00
dca0a66406 Merge pull request 'Update dependency @typescript-eslint/eslint-plugin to v5.46.1' (#538) from renovate/typescript-eslint-eslint-plugin-5.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #538
2022-12-12 23:46:04 +01:00
656851355f Update dependency @typescript-eslint/eslint-plugin to v5.46.1
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-12-12 23:44:51 +01:00
f2b9293398 Merge pull request 'Update dependency @typescript-eslint/parser to v5.46.1' (#537) from renovate/typescript-eslint-parser-5.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #537
2022-12-12 23:43:02 +01:00
bed8f98923 Update dependency @typescript-eslint/parser to v5.46.1
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-12-12 18:26:45 +01:00
eba8b9d846 Merge pull request 'Update dependency @angular/cli to v15' (#526) from renovate/angular-cli-15.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #526
2022-12-12 13:44:07 +01:00
55d44688ca Update dependency @angular/cli to v15
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-12-12 13:44:01 +01:00
655f3d51b5 Merge pull request 'Update dependency @typescript-eslint/eslint-plugin to v5.46.0' (#502) from renovate/typescript-eslint-eslint-plugin-5.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #502
2022-12-12 13:41:13 +01:00
74309f52b2 Update dependency @typescript-eslint/eslint-plugin to v5.46.0 2022-12-12 13:40:38 +01:00
58310819f7 Merge pull request 'Update dependency @angular/common to v15' (#517) from renovate/angular-common-15.x into main
Reviewed-on: #517
2022-12-12 13:40:30 +01:00
089294fe8b Update dependency @angular/common to v15 2022-12-12 13:40:24 +01:00
f4612f055d Merge pull request 'Update dependency @angular-eslint/eslint-plugin to v15' (#530) from renovate/angular-eslint-eslint-plugin-15.x into main
Reviewed-on: #530
2022-12-12 13:40:14 +01:00
47deab63f1 Update dependency @angular-eslint/eslint-plugin to v15 2022-12-12 13:40:01 +01:00
247b55f832 Merge pull request 'Update dependency @angular/core to v15' (#520) from renovate/angular-core-15.x into main
Reviewed-on: #520
2022-12-12 13:39:52 +01:00
022b2928be Update dependency @angular/core to v15 2022-12-12 11:21:41 +01:00
6bcf52b89d Merge pull request 'Update dependency @angular/platform-browser to v15' (#522) from renovate/angular-platform-browser-15.x into main
Reviewed-on: #522
2022-12-12 11:20:29 +01:00
c5919f5231 Update dependency @angular/platform-browser to v15 2022-12-12 11:20:24 +01:00
c11686622c Merge pull request 'Update dependency @typescript-eslint/parser to v5.46.0' (#503) from renovate/typescript-eslint-parser-5.x into main
Reviewed-on: #503
2022-12-12 11:20:16 +01:00
6096d8c57c Update dependency @typescript-eslint/parser to v5.46.0 2022-12-12 11:20:09 +01:00
db05c59b77 Merge pull request 'Update dependency @angular-eslint/eslint-plugin to v14.4.0' (#511) from renovate/angular-eslint-eslint-plugin-14.x into main
Reviewed-on: #511
2022-12-12 11:20:01 +01:00
e90592c148 Update dependency @angular-eslint/eslint-plugin to v14.4.0 2022-12-12 11:19:53 +01:00
f35bbc6ba4 Merge pull request 'Update dependency @angular/animations to v15' (#516) from renovate/angular-animations-15.x into main
Reviewed-on: #516
2022-12-12 11:19:45 +01:00
402f2e6d81 Update dependency @angular/animations to v15 2022-12-12 11:19:39 +01:00
4684e6cfdd Merge pull request 'Update dependency @angular/compiler to v15' (#518) from renovate/angular-compiler-15.x into main
Reviewed-on: #518
2022-12-12 11:19:28 +01:00
d9587d8894 Update dependency @angular/compiler to v15 2022-12-12 11:19:22 +01:00
96e576997c Merge pull request 'Update dependency @angular/compiler-cli to v15' (#519) from renovate/angular-compiler-cli-15.x into main
Reviewed-on: #519
2022-12-12 11:19:11 +01:00
94a0fccfaa Update dependency @angular/compiler-cli to v15 2022-12-12 11:19:01 +01:00
d5693b1b87 Merge pull request 'Update dependency @angular/forms to v15' (#521) from renovate/angular-forms-15.x into main
Reviewed-on: #521
2022-12-12 11:18:48 +01:00
b1503ad3d2 Update dependency @angular/forms to v15 2022-12-12 11:18:42 +01:00
c87d62157a Merge pull request 'Update dependency @angular/platform-browser-dynamic to v15' (#523) from renovate/angular-platform-browser-dynamic-15.x into main
Reviewed-on: #523
2022-12-12 11:18:29 +01:00
91a39ae257 Update dependency @angular/platform-browser-dynamic to v15 2022-12-12 11:18:20 +01:00
a6f8c5f374 Merge pull request 'Update dependency @angular-devkit/build-angular to v15' (#525) from renovate/angular-devkit-build-angular-15.x into main
Reviewed-on: #525
2022-12-12 11:18:04 +01:00
59642addae Update dependency @angular-devkit/build-angular to v15 2022-12-12 11:17:55 +01:00
4408982cbb Merge pull request 'Update dependency @angular-eslint/schematics to v15' (#532) from renovate/angular-eslint-schematics-15.x into main
Reviewed-on: #532
2022-12-12 11:17:38 +01:00
9cec1d3d29 Update dependency @angular-eslint/schematics to v15 2022-12-12 11:17:11 +01:00
9a91a85ac8 Merge pull request 'Update dependency typescript to ~4.9.0' (#515) from renovate/typescript-4.x into main
Reviewed-on: #515
2022-12-12 11:16:32 +01:00
015ee4cb94 Update dependency typescript to ~4.9.0 2022-12-12 11:16:25 +01:00
692f75365a Merge pull request 'Update dependency jasmine-core to ~4.5.0' (#506) from renovate/jasmine-core-4.x into main
Reviewed-on: #506
2022-12-12 11:16:13 +01:00
6ea921685a Update dependency jasmine-core to ~4.5.0 2022-12-12 11:16:06 +01:00
ef64b68f3b Merge pull request 'Update dependency marshmallow to ~=3.19.0' (#509) from renovate/marshmallow-3.x into main
Reviewed-on: #509
2022-12-12 11:15:58 +01:00
bf481d85e2 Update dependency marshmallow to ~=3.19.0 2022-12-12 11:15:28 +01:00
c94872c68d Merge pull request 'Update dependency uwsgi to v2.0.21' (#501) from renovate/uwsgi-2.x into main
Reviewed-on: #501
2022-12-12 11:14:59 +01:00
90bb3e1c6a Update dependency uwsgi to v2.0.21 2022-12-12 11:14:44 +01:00
e99b2efc61 Merge pull request 'Update dependency zone.js to ~0.12.0' (#508) from renovate/zone.js-0.x into main
Reviewed-on: #508
2022-12-12 11:14:24 +01:00
44515f9b14 Update dependency zone.js to ~0.12.0 2022-12-12 11:14:02 +01:00
8e2cce1d5a Merge pull request 'Update dependency faker to ~=15.3.4' (#507) from renovate/faker-15.x into main
Reviewed-on: #507
2022-12-12 11:13:51 +01:00
40601f2937 Update dependency faker to ~=15.3.4 2022-12-12 11:13:41 +01:00
98a6da3d6d Merge pull request 'Update dependency pytest to ~=7.2.0' (#504) from renovate/pytest-7.x into main
Reviewed-on: #504
2022-12-12 11:13:21 +01:00
81b2a382ae Update dependency pytest to ~=7.2.0 2022-12-12 11:13:08 +01:00
4d64d28c90 Merge pull request 'Update python Docker tag to v3.11' (#505) from renovate/python-3.x into main
Reviewed-on: #505
2022-12-12 11:12:55 +01:00
17244c8091 Update python Docker tag to v3.11 2022-12-12 11:12:41 +01:00
0618d3bdac Merge pull request 'Update dependency @angular/router to v15' (#524) from renovate/angular-router-15.x into main
Reviewed-on: #524
2022-12-12 11:00:12 +01:00
bc04394f27 Update dependency @angular/router to v15 2022-12-12 11:00:00 +01:00
bb26d168ff Merge pull request 'Update dependency @angular/cdk to v15' (#527) from renovate/angular-cdk-15.x into main
Reviewed-on: #527
2022-12-12 10:59:10 +01:00
d27aaf8506 Update dependency @angular/cdk to v15 2022-12-12 10:58:56 +01:00
8e9fa29859 Merge pull request 'Update dependency @angular/material to v15' (#528) from renovate/angular-material-15.x into main
Reviewed-on: #528
2022-12-12 10:58:46 +01:00
071fe7cc85 Update dependency @angular/material to v15 2022-12-12 10:58:39 +01:00
f610144c2a Merge pull request 'Update dependency @angular-eslint/builder to v15' (#529) from renovate/angular-eslint-builder-15.x into main
Reviewed-on: #529
2022-12-12 10:58:27 +01:00
e63c44fe4c Update dependency @angular-eslint/builder to v15 2022-12-12 10:58:20 +01:00
432eb6a069 Merge pull request 'Update dependency @angular-eslint/eslint-plugin-template to v15' (#531) from renovate/angular-eslint-eslint-plugin-template-15.x into main
Reviewed-on: #531
2022-12-12 10:58:03 +01:00
6e50dcc4b3 Update dependency @angular-eslint/eslint-plugin-template to v15 2022-12-12 10:57:54 +01:00
845c8873e4 Merge pull request 'Update dependency @angular-eslint/template-parser to v15' (#533) from renovate/angular-eslint-template-parser-15.x into main
Reviewed-on: #533
2022-12-12 10:57:22 +01:00
f5f6f1d355 Update dependency @angular-eslint/template-parser to v15 2022-12-12 10:57:09 +01:00
3bbe33348f Merge pull request 'Update dependency highlight.js to v11.7.0' (#534) from renovate/highlight.js-11.x into main
Reviewed-on: #534
2022-12-12 10:57:02 +01:00
eb9a5e1a68 Update dependency highlight.js to v11.7.0
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending
2022-12-12 10:56:36 +01:00
34c5f40f77 Merge pull request 'Update dependency pyTelegramBotAPI to ~=4.8.0' (#535) from renovate/pytelegrambotapi-4.x into main
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #535
2022-12-12 10:56:22 +01:00
909b45ebcb Update dependency pyTelegramBotAPI to ~=4.8.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-12-12 10:47:07 +01:00
79bd18df3e Merge pull request 'Update dependency rxjs to ~7.6.0' (#536) from renovate/rxjs-7.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #536
2022-12-12 10:46:48 +01:00
35b7510eb9 Update dependency rxjs to ~7.6.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-12-03 20:53:25 +01:00
557d4b6ffa Merge pull request 'Update dependency pyjwt to v2.6.0' (#491) from renovate/pyjwt-2.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #491
2022-10-21 08:48:03 +02:00
c7c4205298 Update dependency pyjwt to v2.6.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-21 08:47:51 +02:00
7f81a6b9d4 Merge pull request 'Update dependency faker to ~=15.1.1' (#490) from renovate/faker-15.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #490
2022-10-21 08:47:38 +02:00
bf1c4c9b83 Update dependency faker to ~=15.1.1
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-21 08:47:31 +02:00
c3a4d7d5ed Merge pull request 'Update dependency Flask_SQLAlchemy to v3.0.2' (#489) from renovate/flask_sqlalchemy-3.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #489
2022-10-21 08:47:13 +02:00
3610833a4d Update dependency Flask_SQLAlchemy to v3.0.2
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-21 08:47:00 +02:00
b883d709d8 Merge pull request 'Update dependency @typescript-eslint/parser to v5.40.1' (#487) from renovate/typescript-eslint-parser-5.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #487
2022-10-21 08:45:25 +02:00
f2e6a9307c Update dependency @typescript-eslint/parser to v5.40.1
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-21 08:45:12 +02:00
c69af3fc46 Merge pull request 'Update dependency bcrypt to v4.0.1' (#486) from renovate/bcrypt-4.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #486
2022-10-21 08:44:36 +02:00
ca625885ba Update dependency bcrypt to v4.0.1
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-09 17:53:36 +02:00
84d178af17 Merge pull request 'Update dependency @typescript-eslint/eslint-plugin to v5.39.0' (#478) from renovate/typescript-eslint-eslint-plugin-5.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #478
2022-10-06 10:26:45 +02:00
62601f7cc3 Update dependency @typescript-eslint/eslint-plugin to v5.39.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:26:10 +02:00
c43c3c7310 Merge pull request 'Update dependency @angular-eslint/schematics to v14.1.2' (#482) from renovate/angular-eslint-schematics-14.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #482
2022-10-06 10:26:00 +02:00
9820f524c9 Update dependency @angular-eslint/schematics to v14.1.2
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:25:39 +02:00
98cafce7e6 Merge pull request 'Update dependency @angular-eslint/eslint-plugin-template to v14.1.2' (#481) from renovate/angular-eslint-eslint-plugin-template-14.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #481
2022-10-06 10:23:49 +02:00
7fb1979adc Update dependency @angular-eslint/eslint-plugin-template to v14.1.2
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:23:41 +02:00
0894d391af Merge pull request 'Update dependency @angular-eslint/builder to v14.1.2' (#479) from renovate/angular-eslint-builder-14.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #479
2022-10-06 10:23:19 +02:00
310bc08154 Update dependency @angular-eslint/builder to v14.1.2
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:23:04 +02:00
fb74484828 Merge pull request 'Update dependency Flask_SQLAlchemy to v3' (#485) from renovate/flask_sqlalchemy-3.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #485
2022-10-06 10:22:46 +02:00
ec85943bf4 Update dependency Flask_SQLAlchemy to v3
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:22:35 +02:00
a88f9f9f50 Merge pull request 'Update dependency faker to v15' (#484) from renovate/faker-15.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #484
2022-10-06 10:22:24 +02:00
af17701bd8 Update dependency faker to v15
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:22:13 +02:00
459101ba63 Merge pull request 'Update dependency @angular-eslint/template-parser to v14.1.2' (#483) from renovate/angular-eslint-template-parser-14.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #483
2022-10-06 10:22:01 +02:00
965d836d85 Update dependency @angular-eslint/template-parser to v14.1.2
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:21:52 +02:00
e9e461f386 Merge pull request 'Update dependency @angular-eslint/eslint-plugin to v14.1.2' (#480) from renovate/angular-eslint-eslint-plugin-14.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #480
2022-10-06 10:21:29 +02:00
8a0c3c38d5 Update dependency @angular-eslint/eslint-plugin to v14.1.2
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:21:17 +02:00
d18c09e6bc Merge pull request 'Update dependency @typescript-eslint/parser to v5.39.0' (#477) from renovate/typescript-eslint-parser-5.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #477
2022-10-06 10:20:58 +02:00
eea56d9187 Update dependency @typescript-eslint/parser to v5.39.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-10-06 10:20:48 +02:00
639092c2aa Merge pull request 'Update dependency pandas to ~=1.5.0' (#476) from renovate/pandas-1.x into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #476
2022-10-06 10:20:33 +02:00
7e9016e910 Update dependency pandas to ~=1.5.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-09-19 18:02:06 +02:00
70b40adbc0 Build bot
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 15:42:40 +02:00
9252bb5ee7 Small fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 15:34:43 +02:00
e435628690 Fixed frontend build
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2022-09-18 15:24:22 +02:00
8c45ff5ac4 Merge pull request 'Update dependency @angular-devkit/build-angular to v14' (#450) from renovate/angular-devkit-build-angular-14.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #450
2022-09-18 15:03:05 +02:00
c5389f7af7 Update dependency @angular-devkit/build-angular to v14
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-09-18 15:02:20 +02:00
1744fd01cb Merge pull request 'Update dependency @typescript-eslint/eslint-plugin to v5.37.0' (#433) from renovate/typescript-eslint-eslint-plugin-5.x into main
Reviewed-on: #433
2022-09-18 14:59:06 +02:00
918bc24fc5 Update dependency @typescript-eslint/eslint-plugin to v5.37.0 2022-09-18 14:58:58 +02:00
5414fb9ae6 Merge pull request 'Update dependency @angular-eslint/schematics to v14' (#454) from renovate/angular-eslint-schematics-14.x into main
Reviewed-on: #454
2022-09-18 14:58:46 +02:00
3f0c2bac85 Update dependency @angular-eslint/schematics to v14 2022-09-18 14:58:39 +02:00
71a3643d61 Merge pull request 'Update dependency @angular/cdk to v14' (#457) from renovate/angular-cdk-14.x into main
Reviewed-on: #457
2022-09-18 14:58:32 +02:00
bcfdaeddf0 Update dependency @angular/cdk to v14 2022-09-18 14:57:37 +02:00
310bfddd3e Merge pull request 'Update dependency @types/jasmine to ~4.3.0' (#432) from renovate/jasmine-4.x into main
Reviewed-on: #432
2022-09-18 14:56:56 +02:00
ca60b8cef3 Update dependency @types/jasmine to ~4.3.0 2022-09-18 14:56:49 +02:00
997cf54acb Merge pull request 'Update dependency @typescript-eslint/parser to v5.37.0' (#434) from renovate/typescript-eslint-parser-5.x into main
Reviewed-on: #434
2022-09-18 14:56:36 +02:00
174f7cac86 Update dependency @typescript-eslint/parser to v5.37.0 2022-09-18 14:56:26 +02:00
dca00c8e1c Merge pull request 'Update dependency Flask to ~=2.2.2' (#435) from renovate/flask-2.x into main
Reviewed-on: #435
2022-09-18 14:56:13 +02:00
ebd705e5a9 Update dependency Flask to ~=2.2.2 2022-09-18 14:56:04 +02:00
f47d7e8734 Merge pull request 'Update dependency @angular-eslint/eslint-plugin to v14' (#452) from renovate/angular-eslint-eslint-plugin-14.x into main
Reviewed-on: #452
2022-09-18 14:55:51 +02:00
73f7e4aa8e Update dependency @angular-eslint/eslint-plugin to v14 2022-09-18 14:55:39 +02:00
60a8f11450 Merge pull request 'Update dependency @angular-eslint/template-parser to v14' (#455) from renovate/angular-eslint-template-parser-14.x into main
Reviewed-on: #455
2022-09-18 14:55:26 +02:00
02445edc03 Update dependency @angular-eslint/template-parser to v14 2022-09-18 14:55:11 +02:00
dba8b65056 Merge pull request 'Update dependency @angular/animations to v14' (#456) from renovate/angular-animations-14.x into main
Reviewed-on: #456
2022-09-18 14:54:59 +02:00
b72a5b427b Update dependency @angular/animations to v14 2022-09-18 14:54:45 +02:00
5afe2f555f Merge pull request 'Update dependency @angular/common to v14' (#459) from renovate/angular-common-14.x into main
Reviewed-on: #459
2022-09-18 14:54:30 +02:00
8b088007f8 Update dependency @angular/common to v14 2022-09-18 14:54:16 +02:00
26b3f77da2 Merge pull request 'Update dependency @angular/compiler-cli to v14' (#461) from renovate/angular-compiler-cli-14.x into main
Reviewed-on: #461
2022-09-18 14:53:49 +02:00
360c1561b4 Update dependency @angular/compiler-cli to v14 2022-09-18 14:53:41 +02:00
690a2cd9b4 Merge pull request 'Update dependency @angular/core to v14' (#462) from renovate/angular-core-14.x into main
Reviewed-on: #462
2022-09-18 14:53:30 +02:00
f77733b9af Update dependency @angular/core to v14 2022-09-18 14:53:22 +02:00
50568b381f Merge pull request 'Update dependency @angular-eslint/builder to v14.1.1' (#474) from renovate/angular-eslint-builder-14.x into main
Reviewed-on: #474
2022-09-18 14:53:12 +02:00
b92a843e06 Update dependency @angular-eslint/builder to v14.1.1 2022-09-18 14:52:55 +02:00
2b86588506 Merge pull request 'Update dependency @angular-eslint/eslint-plugin-template to v14.1.1' (#475) from renovate/angular-eslint-eslint-plugin-template-14.x into main
Reviewed-on: #475
2022-09-18 14:52:46 +02:00
8ef1693312 Update dependency @angular-eslint/eslint-plugin-template to v14.1.1 2022-09-18 14:52:29 +02:00
62d0b132b5 Merge pull request 'Update dependency karma to ~6.4.0' (#441) from renovate/karma-6.x into main
Reviewed-on: #441
2022-09-18 14:52:14 +02:00
23ca166f9e Update dependency karma to ~6.4.0 2022-09-18 14:52:01 +02:00
7f62cd668f Merge pull request 'Update dependency Markdown to ~=3.4.1' (#436) from renovate/markdown-3.x into main
Reviewed-on: #436
2022-09-18 14:51:52 +02:00
b7b2805e66 Update dependency Markdown to ~=3.4.1 2022-09-18 14:51:43 +02:00
623231a48f Merge pull request 'Update dependency apiflask to v1.1.3' (#437) from renovate/apiflask-1.x into main
Reviewed-on: #437
2022-09-18 14:51:30 +02:00
e1ee94d8d7 Update dependency apiflask to v1.1.3 2022-09-18 14:51:18 +02:00
94ed61dcde Merge pull request 'Update dependency currencyconverter to ~=0.17.1' (#438) from renovate/currencyconverter-0.x into main
Reviewed-on: #438
2022-09-18 14:50:50 +02:00
65afe02ce0 Update dependency currencyconverter to ~=0.17.1 2022-09-18 14:50:39 +02:00
64400aeb2f Merge pull request 'Update dependency jasmine-core to ~4.4.0' (#440) from renovate/jasmine-core-4.x into main
Reviewed-on: #440
2022-09-18 14:49:50 +02:00
27807e1d54 Update dependency jasmine-core to ~4.4.0 2022-09-18 14:49:43 +02:00
c624eb76c1 Merge pull request 'Update dependency 10up-sanitize.css to v13' (#449) from renovate/10up-sanitize.css-13.x into main
Reviewed-on: #449
2022-09-18 14:49:28 +02:00
ae5351a2b9 Update dependency 10up-sanitize.css to v13 2022-09-18 14:49:20 +02:00
5b62b51c17 Merge pull request 'Update dependency karma-jasmine to ~5.1.0' (#442) from renovate/karma-jasmine-5.x into main
Reviewed-on: #442
2022-09-18 13:31:18 +02:00
d490ee1b63 Update dependency karma-jasmine to ~5.1.0 2022-09-18 13:31:10 +02:00
296a899c82 Merge pull request 'Update dependency marshmallow to ~=3.18.0' (#443) from renovate/marshmallow-3.x into main
Reviewed-on: #443
2022-09-18 13:30:49 +02:00
50bc0f4df2 Update dependency marshmallow to ~=3.18.0 2022-09-18 13:30:24 +02:00
cf53482196 Merge pull request 'Update dependency pyTelegramBotAPI to ~=4.7.0' (#444) from renovate/pytelegrambotapi-4.x into main
Reviewed-on: #444
2022-09-18 13:30:13 +02:00
9628a70758 Update dependency pyTelegramBotAPI to ~=4.7.0 2022-09-18 13:29:59 +02:00
43472ac1e0 Merge pull request 'Update dependency pyjwt to v2.5.0' (#445) from renovate/pyjwt-2.x into main
Reviewed-on: #445
2022-09-18 13:29:51 +02:00
41a2bd356f Update dependency pyjwt to v2.5.0 2022-09-18 13:27:46 +02:00
e9c84eb48c Merge pull request 'Update dependency python-dotenv to v0.21.0' (#446) from renovate/python-dotenv-0.x into main
Reviewed-on: #446
2022-09-18 13:27:39 +02:00
2f629c17b2 Update dependency python-dotenv to v0.21.0 2022-09-18 13:17:12 +02:00
6781e26f32 Merge pull request 'Update dependency requests to ~=2.28.1' (#447) from renovate/requests-2.x into main
Reviewed-on: #447
2022-09-18 13:16:34 +02:00
1af7d4ea5b Update dependency requests to ~=2.28.1 2022-09-18 13:16:25 +02:00
629daca0a1 Merge pull request 'Update dependency @angular/material to v14' (#464) from renovate/angular-material-14.x into main
Reviewed-on: #464
2022-09-18 13:16:02 +02:00
7edcd4c046 Update dependency @angular/material to v14 2022-09-18 13:15:09 +02:00
4bdcd15f49 Merge pull request 'Update dependency @angular/platform-browser-dynamic to v14' (#466) from renovate/angular-platform-browser-dynamic-14.x into main
Reviewed-on: #466
2022-09-18 13:14:31 +02:00
5d7c9a60f2 Update dependency @angular/platform-browser-dynamic to v14 2022-09-18 13:14:20 +02:00
86e2aad47c Merge pull request 'Update dependency karma-jasmine-html-reporter to v2' (#472) from renovate/karma-jasmine-html-reporter-2.x into main
Reviewed-on: #472
2022-09-18 13:13:40 +02:00
f00c51bff9 Update dependency karma-jasmine-html-reporter to v2 2022-09-18 13:13:23 +02:00
f47e874b63 Merge pull request 'Update dependency @angular/cli to v14' (#458) from renovate/angular-cli-14.x into main
Reviewed-on: #458
2022-09-18 13:11:51 +02:00
952adbec24 Update dependency @angular/cli to v14 2022-09-18 13:10:51 +02:00
9c19626fa8 Merge pull request 'Update dependency @angular/compiler to v14' (#460) from renovate/angular-compiler-14.x into main
Reviewed-on: #460
2022-09-18 13:10:30 +02:00
702af1b325 Update dependency @angular/compiler to v14 2022-09-18 13:10:20 +02:00
d44b1058d0 Merge pull request 'Update dependency @angular/forms to v14' (#463) from renovate/angular-forms-14.x into main
Reviewed-on: #463
2022-09-18 13:09:42 +02:00
b4344ae81e Update dependency @angular/forms to v14 2022-09-18 13:09:32 +02:00
e2145ea40c Merge pull request 'Update dependency @angular/platform-browser to v14' (#465) from renovate/angular-platform-browser-14.x into main
Reviewed-on: #465
2022-09-18 13:08:53 +02:00
05ca7ee6e2 Update dependency @angular/platform-browser to v14 2022-09-18 13:08:33 +02:00
755a4b734e Merge pull request 'Update dependency @types/node to v18' (#468) from renovate/node-18.x into main
Reviewed-on: #468
2022-09-18 13:07:53 +02:00
199c63900f Update dependency @types/node to v18 2022-09-18 13:07:39 +02:00
648bce95a7 Merge pull request 'Update dependency @angular/router to v14' (#467) from renovate/angular-router-14.x into main
Reviewed-on: #467
2022-09-18 13:07:18 +02:00
576af546e7 Update dependency @angular/router to v14 2022-09-18 13:07:05 +02:00
9f674014cc Merge pull request 'Update dependency typescript to ~4.8.0' (#448) from renovate/typescript-4.x into main
Reviewed-on: #448
2022-09-18 13:04:51 +02:00
329d8c9f0e Update dependency typescript to ~4.8.0 2022-09-18 13:01:31 +02:00
ac679c29ee Merge pull request 'Update dependency @angular-eslint/builder to v14' (#451) from renovate/angular-eslint-builder-14.x into main
Reviewed-on: #451
2022-09-18 13:01:17 +02:00
8be411724e Update dependency @angular-eslint/builder to v14 2022-09-18 13:01:08 +02:00
8095223220 Merge pull request 'Update dependency @angular-eslint/eslint-plugin-template to v14' (#453) from renovate/angular-eslint-eslint-plugin-template-14.x into main
Reviewed-on: #453
2022-09-18 13:00:14 +02:00
1ef8a2e0d5 Update dependency @angular-eslint/eslint-plugin-template to v14 2022-09-18 12:59:57 +02:00
953fed92ec Merge pull request 'Update dependency bcrypt to v4' (#469) from renovate/bcrypt-4.x into main
Reviewed-on: #469
2022-09-18 12:59:24 +02:00
58f378daad Update dependency bcrypt to v4 2022-09-18 12:59:08 +02:00
83aeff2c5e Merge pull request 'Update dependency faker to v14' (#470) from renovate/faker-14.x into main
Reviewed-on: #470
2022-09-18 12:58:52 +02:00
2dc6e30f8b Update dependency faker to v14 2022-09-18 12:58:32 +02:00
b24113eb47 Merge pull request 'Update dependency tzlocal to v4' (#473) from renovate/tzlocal-4.x into main
Reviewed-on: #473
2022-09-18 12:58:06 +02:00
44eb3ba864 Update dependency tzlocal to v4 2022-09-18 12:57:49 +02:00
21a0e27647 Merge pull request 'Update dependency highlight.js to v11' (#471) from renovate/highlight.js-11.x into main
Reviewed-on: #471
2022-09-18 12:57:28 +02:00
ca092a5340 Update dependency highlight.js to v11 2022-09-18 12:57:11 +02:00
94ab9fe91c Merge pull request 'Update dependency @angular/compiler-cli to ~13.3.0' (#426) from renovate/angular-compiler-cli-13.x into main
Reviewed-on: #426
2022-09-18 12:56:56 +02:00
a32086ca32 Update dependency @angular/compiler-cli to ~13.3.0 2022-09-18 12:56:48 +02:00
b95e6a9303 Merge pull request 'Update dependency @angular/common to ~13.3.0' (#424) from renovate/angular-common-13.x into main
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #424
2022-09-18 12:56:18 +02:00
f207a226da Update dependency @angular/common to ~13.3.0
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending
2022-09-18 12:56:08 +02:00
46c152ba52 Merge pull request 'Update dependency @angular/animations to ~13.3.0' (#423) from renovate/angular-animations-13.x into main
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #423
2022-09-18 12:55:50 +02:00
cd16d00155 Update dependency @angular/animations to ~13.3.0
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending
2022-09-18 12:55:44 +02:00
e5ce9756a4 Merge pull request 'Update dependency @angular-eslint/template-parser to v13.5.0' (#422) from renovate/angular-eslint-template-parser-13.x into main
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #422
2022-09-18 12:55:31 +02:00
f159f3e63c Update dependency @angular-eslint/template-parser to v13.5.0
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending
2022-09-18 12:55:20 +02:00
4c944ef8f8 Merge pull request 'Update dependency @angular-eslint/eslint-plugin to v13.5.0' (#419) from renovate/angular-eslint-eslint-plugin-13.x into main
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #419
2022-09-18 12:54:34 +02:00
c07e65560f Update dependency @angular-eslint/eslint-plugin to v13.5.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-09-18 12:36:04 +02:00
e7c6912c35 Merge pull request 'Update dependency @angular-eslint/builder to v13.5.0' (#418) from renovate/angular-eslint-builder-13.x into main
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Reviewed-on: #418
2022-09-18 12:34:32 +02:00
ba8dbf66ca Update dependency @angular-eslint/builder to v13.5.0
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-09-18 12:34:23 +02:00
d43e9d3813 Automerge minor dependency updastes
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 00:58:45 +02:00
6b339e09fc Merge pull request 'Configure Renovate' (#417) from renovate/configure into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #417
2022-09-18 00:51:35 +02:00
364f8596ae Add renovate.json
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2022-09-18 00:51:28 +02:00
752d92be49 Fixed renovate
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 00:51:12 +02:00
97ce099485 Try to fix renovate
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 00:48:22 +02:00
cc9af56da7 Fixed renovate
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 00:46:23 +02:00
4adf14d7cb „.renovaterc.json“ löschen
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-09-18 00:45:54 +02:00
7595d42f9a Migrate from github to gitea + some improvements 2022-09-18 00:39:03 +02:00
39 changed files with 254 additions and 24820 deletions

107
.gitea/workflows/build.yaml Normal file
View File

@ -0,0 +1,107 @@
name: Build & Publish Backend
on:
push:
paths:
- "api/**"
- "frontend/**"
- "telegram_bot/**"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Check changed directories
uses: https://github.com/dorny/paths-filter@v2
id: changes
with:
filters: |
api:
- 'api/**'
frontend:
- 'frontend/**'
telegram_bot:
- 'telegram_bot/**'
# Frontend
- name: "[Frontend] Docker meta"
if: steps.changes.outputs.frontend == 'true'
id: frontend-meta
uses: https://github.com/docker/metadata-action@v4
with:
images: git.flokaiser.com/dhbw/aktienbot-frontend
tags: |
type=sha,enable=true,priority=100,prefix={{branch}}-,suffix=,format=short
type=raw,value=latest,enable={{is_default_branch}}
# API
- name: "[API] Docker meta"
if: steps.changes.outputs.api == 'true'
id: api-meta
uses: https://github.com/docker/metadata-action@v4
with:
images: git.flokaiser.com/dhbw/aktienbot-api
tags: |
type=sha,enable=true,priority=100,prefix={{branch}}-,suffix=,format=short
type=raw,value=latest,enable={{is_default_branch}}
# Bot
- name: "[Bot] Docker meta"
if: steps.changes.outputs.telegram_bot == 'true'
id: bot-meta
uses: https://github.com/docker/metadata-action@v4
with:
images: git.flokaiser.com/dhbw/aktienbot-bot
tags: |
type=sha,enable=true,priority=100,prefix={{branch}}-,suffix=,format=short
type=raw,value=latest,enable={{is_default_branch}}
- name: Get get-docker.sh
run: curl -fsSL https://get.docker.com -o get-docker.sh
- name: Install docker
run: sh get-docker.sh
- name: Login to Registry
uses: docker/login-action@v2
with:
registry: git.flokaiser.com
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
# Frontend
- name: "[Frontend] Build and push"
if: steps.changes.outputs.frontend == 'true'
uses: docker/build-push-action@v4
with:
file: Dockerfile
context: "{{defaultContext}}:frontend"
platforms: linux/amd64
push: true
tags: ${{ steps.frontend-meta.outputs.tags }}
# API
- name: "[API] Build and push"
if: steps.changes.outputs.api == 'true'
uses: docker/build-push-action@v4
with:
file: Dockerfile
context: "{{defaultContext}}:api"
platforms: linux/amd64
push: true
tags: ${{ steps.api-meta.outputs.tags }}
# Bot
- name: "[Bot] Build and push"
if: steps.changes.outputs.telegram_bot == 'true'
uses: docker/build-push-action@v4
with:
file: Dockerfile
context: "{{defaultContext}}:telegram_bot"
platforms: linux/amd64
push: true
tags: ${{ steps.bot-meta.outputs.tags }}

View File

@ -1,27 +0,0 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# API
- package-ecosystem: "pip"
directory: "/api"
schedule:
interval: "daily"
open-pull-requests-limit: 100
# Bot
- package-ecosystem: "pip"
directory: "/telegram_bot"
schedule:
interval: "daily"
open-pull-requests-limit: 100
# Frontend
- package-ecosystem: "npm"
directory: "/frontend"
schedule:
interval: "daily"
open-pull-requests-limit: 100

10
.renovaterc.json Normal file
View File

@ -0,0 +1,10 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"schedule": ["* 5 * * *"],
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch", "pin", "digest"],
"automerge": true
}
]
}

View File

@ -1,87 +0,0 @@
pipeline:
generate_docker_tag:
image: golang
commands:
- echo -n "${CI_COMMIT_BRANCH//\//-}-${CI_COMMIT_SHA:0:8}, latest" > .tags
when:
path: [ "frontend/**", "telegram_bot/**", "api/**" ]
event: push
# -------------------------------------- API --------------------------------------
build_api:
image: woodpeckerci/plugin-docker-buildx
settings:
repo:
from_secret: repo_api
username:
from_secret: username
password:
from_secret: password
registry:
from_secret: registry
dockerfile: api/Dockerfile
platforms: linux/amd64
when:
path: "api/**"
event: push
# -------------------------------------- Bot --------------------------------------
build_bot:
image: woodpeckerci/plugin-docker-buildx
settings:
repo:
from_secret: repo_bot
username:
from_secret: username
password:
from_secret: password
registry:
from_secret: registry
dockerfile: telegram_bot/Dockerfile
platforms: linux/amd64
when:
path: "telegram_bot/**"
event: push
# -------------------------------------- Frontend --------------------------------------
build_frontend:
image: woodpeckerci/plugin-docker-buildx
settings:
repo:
from_secret: repo_frontend
username:
from_secret: username
password:
from_secret: password
registry:
from_secret: registry
dockerfile: frontend/Dockerfile
platforms: linux/amd64
when:
path: "frontend/**"
event: push
# -------------------------------------- Deploy --------------------------------------
deploy:
image: appleboy/drone-ssh
network_mode: host
settings:
host:
from_secret: ssh_host
username:
from_secret: ssh_user
password:
from_secret: ssh_password
script:
- cd /root/docker/aktienbot
- docker-compose pull
- docker-compose -p "aktienbot" up -d
when:
path: [ "frontend/**", "telegram_bot/**", "api/**" ]
event: push
branches: main

View File

@ -1,4 +1,3 @@
[![Build Status](https://woodpecker.flokaiser.com/api/badges/WebEngineering2/TelegramAktienBot/status.svg)](https://woodpecker.flokaiser.com/WebEngineering2/TelegramAktienBot/)
# TelegramAktienBot
WebEngineering2 Projekt: Aktien und News Bot für Telegram
@ -21,16 +20,4 @@ WebEngineering2 Projekt: Aktien und News Bot für Telegram
* Florian Kaiser
* Florian Kellermann
* Linus Eickhoff
* Kevin Pauer
## Nützliche Tools
- Portainer (https://gruppe1.testsites.info/portainer/) \
*Container Management System*
- phpMyAdmin (https://gruppe1.testsites.info/phpmyadmin/) \
*Administration von MySQL-Datenbanken*
- goaccess (https://gruppe1.testsites.info/goaccess/) \
*Webanalyseanwendung*
- Uptimekuma (https://uptimekuma.flokaiser.com/status/aktienbot) \
*Monitoring*
- Woodpecker (https://woodpecker.flokaiser.com/WebEngineering2/TelegramAktienBot) \
*Continuous Integration platform*
* Kevin Pauer

View File

@ -1,4 +1,4 @@
FROM python:3.10-slim
FROM python:3.11-slim
# Change the working directory to the root of the project
WORKDIR /srv/flask_app
@ -7,12 +7,12 @@ WORKDIR /srv/flask_app
RUN apt update && apt install -y python3 python3-pip curl nginx && rm -rf /var/lib/apt/lists/*
# Install the dependencies
COPY api/requirements.txt /srv/flask_app/
COPY requirements.txt /srv/flask_app/
RUN pip install -r requirements.txt --src /usr/local/src --no-warn-script-location
# Copy the source code to the working directory
COPY api /srv/flask_app
COPY api/deploy/nginx.conf /etc/nginx
COPY . /srv/flask_app
COPY ./deploy/nginx.conf /etc/nginx
# Change file permissions
RUN chmod +x ./deploy/start.sh

View File

@ -49,7 +49,7 @@ docker run -d \
--env "MYSQL_PORT=" \
--env "MYSQL_DATABASE=" \
--restart unless-stopped \
registry.flokaiser.com/aktienbot/api:latest
git.flokaiser.com/dhbw/aktienbot-api:latest
```
or load environment variables from file by using `--env-file <filename>`

View File

@ -6,6 +6,7 @@ __version__ = "1.0.0"
from app import create_app
# Create an application instance that web servers can use.
application = create_app('config/flask.cfg')
application.run()

View File

@ -24,8 +24,8 @@ http {
index index.html index.htm;
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 81 default_server;
listen [::]:81 default_server;
server_name homeserver.flokaiser.com;
root /var/www/html;

View File

@ -64,10 +64,15 @@ token = requests.post(os.getenv("API_URL") + '/user/login', json={"email": usern
response = requests.get(os.getenv("API_URL") + '/symbols', headers={'Authorization': 'Bearer ' + token}).json()['data']
symbols = split(response, int(len(response) / 5))
for symbol_list in symbols:
for symbol in symbol_list:
x = threading.Thread(target=thread_function, args=(symbol,))
x.start()
if len(response) > 5:
symbols = split(response, int(len(response) / 5))
for symbol_list in symbols:
for symbol in symbol_list:
x = threading.Thread(target=thread_function, args=(symbol,))
x.start()
time.sleep(10)
time.sleep(10)
else:
for symbol in response:
x = threading.Thread(target=thread_function, args=(symbol,))
x.start()

View File

@ -1,18 +1,17 @@
Flask~=2.1.2
python-dotenv==0.20.0
uwsgi==2.0.20
Flask_SQLAlchemy==2.5.1
python-dotenv==0.20.0
Flask==2.2.3
python-dotenv==1.0.0
uwsgi==2.0.21
Flask_SQLAlchemy==3.0.3
pymysql==1.0.2
pyjwt==2.3.0
apiflask==1.0.0
pyjwt==2.6.0
apiflask==1.3.1
flask-cors==3.0.10
bcrypt==3.2.2
pytest~=7.1.2
pytest-cov
marshmallow~=3.15.0
faker~=13.11.0
requests~=2.27.1
investpy~=1.0.8
pandas~=1.4.2
currencyconverter~=0.16.12
bcrypt==4.0.1
pytest==7.2.2
pytest-cov==4.0.
marshmallow==3.19.0
faker==18.3.1
requests==2.28.1
investpy==1.0.8
pandas==1.5.3
currencyconverter==0.17.6

View File

@ -12,7 +12,7 @@ BOT_EMAIL=
BOT_PASSWORD=
# urls
WEBSITE_URL=
APP_URL=
API_URL=
# timezone

View File

@ -1,7 +1,7 @@
# Dokumentation
## Swagger Documentation
Visit https://gruppe1.testsites.info/api/docs
Visit \<API_URL\> + /docs
## API
- `api/openapi.json`

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.api_handling.api_handler API documentation</title>
<meta name="description" content="script for communicating with webservice to get data from database" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.api_handling API documentation</title>
<meta name="description" content="" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.bot API documentation</title>
<meta name="description" content="script for telegram bot and its functions" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.bot_updates API documentation</title>
<meta name="description" content="script for regularly sending updates on shares and news based on user interval" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.helper_functions API documentation</title>
<meta name="description" content="script for helper functions for bot related stuff" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot API documentation</title>
<meta name="description" content="" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.news API documentation</title>
<meta name="description" content="" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.news.news_fetcher API documentation</title>
<meta name="description" content="script for news fetching (by keywords)" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.shares API documentation</title>
<meta name="description" content="" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -6,13 +6,13 @@
<meta name="generator" content="pdoc 0.10.0" />
<title>telegram_bot.shares.share_fetcher API documentation</title>
<meta name="description" content="script for share fetching (by symbols (e.g. AAPL, TSLA etc.))" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js" integrity="sha512-bgHRAiTjGrzHzLyKOnpFvaEpGzJet3z4tZnXGjpsCcqOnAH6VGUx9frc5bcIhKTVLEiCO6vEhNAgx5jtLUYrfA==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>

View File

@ -1,10 +1,10 @@
FROM node:latest as build
FROM node:18 as build
# Change to the project directory
WORKDIR /usr/local/app
# Copy the project files to the container
COPY frontend /usr/local/app/
COPY . /usr/local/app/
# Install dependencies
RUN npm install
@ -16,8 +16,8 @@ FROM nginx:latest
COPY --from=build /usr/local/app/dist/aktienbot /usr/share/nginx/html
# Copy configuration files
COPY frontend/deploy/nginx.conf /etc/nginx
COPY frontend/deploy deploy/
COPY ./deploy/nginx.conf /etc/nginx
COPY ./deploy deploy/
# Change file permissions
RUN chmod +x ./deploy/healthcheck.sh

24575
frontend/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -13,25 +13,25 @@
"private": true,
"dependencies": {
"@angular/animations": "~13.2.0",
"@angular/cdk": "^13.2.6",
"@angular/cdk": "~13.2.6",
"@angular/common": "~13.2.0",
"@angular/compiler": "~13.2.0",
"@angular/core": "~13.2.0",
"@angular/forms": "~13.2.0",
"@angular/material": "^13.3.6",
"@angular/material": "13.2.6",
"@angular/platform-browser": "~13.2.0",
"@angular/platform-browser-dynamic": "~13.2.0",
"@angular/router": "~13.2.0",
"bootstrap": "^5.1.3",
"ngx-cron-editor": "^0.7.3",
"bootstrap": "5.1.3",
"ngx-cron-editor": "0.7.3",
"rxjs": "~7.5.0",
"tslib": "^2.4.0",
"tslib": "2.4.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~13.3.5",
"@angular-eslint/builder": "13.2.1",
"@angular-eslint/eslint-plugin": "14.0.4",
"@angular-eslint/eslint-plugin": "13.2.1",
"@angular-eslint/eslint-plugin-template": "13.2.1",
"@angular-eslint/schematics": "13.2.1",
"@angular-eslint/template-parser": "13.2.1",

View File

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
const AUTH_API = 'https://gruppe1.testsites.info/api/user';
const AUTH_API = '/api/user';
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' }),

View File

@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { TokenStorageService } from './token.service';
const API_URL = 'https://gruppe1.testsites.info/api/';
const API_URL = '/api/';
@Injectable({
providedIn: 'root',

View File

@ -2,7 +2,7 @@ import { Injectable, OnInit } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { delay, Observable } from 'rxjs';
import { TokenStorageService } from './token.service';
const API_URL = 'https://gruppe1.testsites.info/api/';
const API_URL = '/api/';
@Injectable({
providedIn: 'root',
})

View File

@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { TokenStorageService } from './token.service';
const API_URL = 'https://gruppe1.testsites.info/api/';
const API_URL = '/api/';
@Injectable({
providedIn: 'root',
@ -77,7 +77,7 @@ export class ProfileService {
*/
public addCronString(cron: string): Observable<any> {
return this.http.put(
'https://gruppe1.testsites.info/api/user' + '/setCron',
'/api/user' + '/setCron',
{
cron,
},

View File

@ -106,8 +106,13 @@ export class BotSettingsComponent implements OnInit {
}
setCronString() {
let val = this.cronForm.value
if(val === null) {
val = "";
}
this.profileService
.addCronString(this.cronForm.value)
.addCronString(val)
.subscribe((result) => {
console.log(result);
});

3
renovate.json Normal file
View File

@ -0,0 +1,3 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}

View File

@ -12,7 +12,7 @@ BOT_EMAIL=
BOT_PASSWORD=
# urls
WEBSITE_URL=
APP_URL=
API_URL=
# timezone

View File

@ -1,14 +1,18 @@
FROM python:3.10-slim
FROM python:3.11-slim
# Change the working directory to the root of the project
WORKDIR /srv/flask_app
# Create venv
RUN python -m venv myvenv
ENV PATH="myvenv/bin:$PATH"
# Install the dependencies
COPY telegram_bot/requirements.txt /srv/flask_app/
COPY requirements.txt /srv/flask_app/
RUN pip install -r requirements.txt --src /usr/local/src --no-warn-script-location
# Copy the source code to the working directory
COPY telegram_bot /srv/flask_app
COPY . /srv/flask_app
# Change file permissions
RUN chmod +x ./deploy/start.sh

View File

@ -32,7 +32,7 @@ docker run -d \
--env "BOT_API_KEY=" \
--env "NEWS_API_KEY=" \
--restart unless-stopped \
registry.flokaiser.com/aktienbot/bot:latest
git.flokaiser.com/dhbw/aktienbot-bot:latest
```
or load environment variables from file by using `--env-file <filename>`

View File

@ -19,7 +19,7 @@ from dotenv import load_dotenv
load_dotenv() # loads environment vars
# note: for more information about the api visit swagger documentation on https://gruppe1.testsites.info/api/docs#/
# note: for more information about the api visit swagger documentation on os.getenv("API_URL")/docs#/
class API_Handler:
"""class for interacting with the api webservice
@ -392,7 +392,7 @@ class API_Handler:
if __name__ == "__main__": # editable, just for basic on the go testing of new functions
print("This is a module for the telegram bot. It is not intended to be run directly.")
handler = API_Handler("https://gruppe1.testsites.info/api", str(os.getenv("BOT_EMAIL")), str(os.getenv("BOT_PASSWORD"))) # get creds from env
handler = API_Handler(os.getenv("API_URL"), str(os.getenv("BOT_EMAIL")), str(os.getenv("BOT_PASSWORD"))) # get creds from env
print(handler.token)
keywords = handler.get_user_keywords(user_id=1709356058) # user_id here is currently mine (Linus)
print(keywords)

View File

@ -27,6 +27,7 @@ import news.news_fetcher as news
import shares.share_fetcher as share_fetcher
from api_handling.api_handler import API_Handler
load_dotenv(dotenv_path='.env') # load environment variables
bot_version = "3.0.1" # version of bot
@ -50,7 +51,7 @@ def send_start(message):
"""
bot.reply_to(message, "Welcome to this share bot project. \
\nType /help to get information on what this bot can do. \
\nAlso see " + os.getenv("WEBSITE_URL") + " \
\nAlso see " + os.getenv("APP_URL") + " \
to start configuring your bot")
@ -78,7 +79,7 @@ def send_help(message):
:rtype: none
"""
bot.reply_to(message,
"/id or /auth get your user id\n/shares get update on interesting shares\n/setAdmin set admin rights of user (ADMIN)\n/users see all users. (ADMIN)\n/me get my user info\n/news get top article for each keyword.\n/allnews get all news (last 7 days)\n/keywords get all your keywords\n/addkeyword add a keyword\n/removekeyword remove a keyword\n/transactions get all transactions\n/newtransaction create new transaction\n/share get price of specific share\n/portfolio see own stock portfolio\n/removeshare removes share from portfolio\n/interval get update interval\n/setinterval set update interval\n For further details see " + os.getenv("WEBSITE_URL"))
"/id or /auth get your user id\n/shares get update on interesting shares\n/setAdmin set admin rights of user (ADMIN)\n/users see all users. (ADMIN)\n/me get my user info\n/news get top article for each keyword.\n/allnews get all news (last 7 days)\n/keywords get all your keywords\n/addkeyword add a keyword\n/removekeyword remove a keyword\n/transactions get all transactions\n/newtransaction create new transaction\n/share get price of specific share\n/portfolio see own stock portfolio\n/removeshare removes share from portfolio\n/interval get update interval\n/setinterval set update interval\n For further details see " + os.getenv("APP_URL"))
@bot.message_handler(commands=['users', 'Users']) # /users -> sending all users
@ -170,7 +171,7 @@ def send_user(message):
user_id = int(message.from_user.id)
user_data = api_handler.get_user(user_id)
if not user_data or user_data == None: # true if user is not registered
bot.reply_to(message, "This didn\'t work. Make sure to connect your telegram id (/id) on " + os.getenv("WEBSITE_URL"))
bot.reply_to(message, "This didn\'t work. Make sure to connect your telegram id (/id) on " + os.getenv("APP_URL"))
return
username = user_data['username']
email = user_data['email']
@ -190,7 +191,7 @@ def send_id(message):
:rtype: none
"""
answer = 'Your ID/Authentication Code is: [' + str(message.from_user.id) + ']. Enter this code in the settings on ' + os.getenv("WEBSITE_URL") + ' to get updates on your shares.'
answer = 'Your ID/Authentication Code is: [' + str(message.from_user.id) + ']. Enter this code in the settings on ' + os.getenv("APP_URL") + ' to get updates on your shares.'
bot.reply_to(message, answer)
@ -219,7 +220,7 @@ def update_for_user(message):
my_portfolio = p_my_handler.get_user_portfolio(p_user_id)
if my_portfolio == None: # true if user is not registered
bot.send_message(chat_id=p_user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=p_user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
return
my_user = p_my_handler.get_user(p_user_id)
@ -240,7 +241,7 @@ def update_for_user(message):
my_update_message = f'{share_fetcher.get_share_information_markdown(share_symbols[i])}\ncount: {amounts}\nTotal: {hf.make_markdown_proof(round(float(my_price) * float(share_amounts[i]), 2))} EUR'
bot.send_message(chat_id=p_user_id, text=my_update_message, parse_mode="MARKDOWNV2")
else:
send_to_user("No shares found for your account. Check " + os.getenv("WEBSITE_URL") + " to change your settings and add shares.", pUser_id=p_user_id)
send_to_user("No shares found for your account. Check " + os.getenv("APP_URL") + " to change your settings and add shares.", pUser_id=p_user_id)
def send_to_user(pText, pUser_id):
@ -294,7 +295,7 @@ def send_all_news(message):
keywords = api_handler.get_user_keywords(user_id) # get keywords of user
if keywords == None: # true if user is not registered
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
return
if not keywords: # true if user is registered but does not have any keywords
@ -330,7 +331,7 @@ def send_news(message):
keywords = api_handler.get_user_keywords(user_id) # get keywords of user
if keywords == None: # true if user is not registered
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
return
if not keywords: # true if user is registered but does not have any keywords
@ -375,7 +376,7 @@ def store_keyword(message):
if status == 200: # statuscode 200 means keyword was added successfully without errors
bot.send_message(chat_id=user_id, text=f'Keyword "{keyword}" added.') # duplicate keywords are denied by Database, so no need to check for that here
else:
bot.send_message(chat_id=user_id, text=f'Keyword "{keyword}" could not be stored. Make sure to connect your telegram id (/id) on https://gruppe1.testsites.info (statuscode {status})')
bot.send_message(chat_id=user_id, text=f'Keyword "{keyword}" could not be stored. Make sure to connect your telegram id (/id) on {os.getenv("APP_URL")} (statuscode {status})')
@bot.message_handler(commands=['removekeyword', 'Removekeyword']) # /removekeyword -> remove keyword from user
@ -417,7 +418,7 @@ def send_keywords(message):
keywords = api_handler.get_user_keywords(user_id) # get keywords of user
if keywords == None: # true if user is not registered
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
return
if not keywords: # true if user is registered but does not have any keywords
@ -513,7 +514,7 @@ def send_interval(message):
user_id = int(message.from_user.id)
user_data = api_handler.get_user(user_id) # get cron interval of user (stored in user data)
if user_data == None: # true if user is not registered in DB
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL") + ' and set an interval with /setinterval')
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL") + ' and set an interval with /setinterval')
return
else: # send interval
interval = str(user_data['cron']) # get cron from user data
@ -538,7 +539,7 @@ def send_transactions(message):
transactions = api_handler.get_user_transactions(user_id) # get transactions of user
if transactions == None: # true if user does not exist
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
return
if not transactions: # true if user has no transactions
@ -571,9 +572,9 @@ def send_shares(message):
shares = api_handler.get_user_shares(user_id) # get shares of user
if shares == None: # true if user does not exist
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
elif not shares: # true if user has no shares
bot.send_message(chat_id=user_id, text='You do not have any shares. Add shares on ' + os.getenv("WEBSITE_URL"))
bot.send_message(chat_id=user_id, text='You do not have any shares. Add shares on ' + os.getenv("APP_URL"))
else:
for element in shares:
bot.send_message(chat_id=user_id, text=share_fetcher.get_share_information_markdown(element), parse_mode="MARKDOWNV2")

View File

@ -19,6 +19,7 @@ import shares.share_fetcher as share_fetcher
from api_handling.api_handler import API_Handler
from bot import bot
'''
* * * * * code
@ -156,7 +157,7 @@ def update_for_user(p_user_id, p_my_handler):
my_update_message = f'{share_fetcher.get_share_information_markdown(share_symbols[i])}\ncount: {hf.make_markdown_proof(share_amounts[i])}\nTotal: {hf.make_markdown_proof(round(float(my_price) * float(share_amounts[i]), 2))} EUR'
bot.send_message(chat_id=p_user_id, text=my_update_message, parse_mode="MARKDOWNV2")
else:
send_to_user("No shares found for your account. Check " + os.getenv("WEBSITE_URL") + " to change your settings and add shares.", pUser_id=p_user_id)
send_to_user("No shares found for your account. Check " + os.getenv("APP_URL") + " to change your settings and add shares.", pUser_id=p_user_id)
if len(shares) != 0: # Send updates on watchlist shares if existing
send_to_user("Your watchlist shares:", pUser_id=p_user_id)

View File

@ -1,11 +1,11 @@
pyTelegramBotAPI~=4.5.0
Markdown~=3.3.6
pyTelegramBotAPI~=4.8.0
Markdown~=3.4.1
newsapi-python~=0.2.6
python-dotenv~=0.20.0
requests~=2.27.1
python-dotenv~=0.21.0
requests~=2.28.1
APScheduler~=3.9.1
croniter~=1.3.4
tzlocal==2.1
tzlocal==4.2
investpy~=1.0.8
pandas~=1.4.1
currencyconverter~=0.16.12
pandas~=1.5.0
currencyconverter~=0.17.1