genocide 175__tar.gz → 180__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. {genocide-175 → genocide-180}/PKG-INFO +5 -9
  2. {genocide-175 → genocide-180}/README.rst +4 -8
  3. {genocide-175 → genocide-180}/docs/conf.py +4 -11
  4. {genocide-175 → genocide-180}/docs/evidence.rst +5 -3
  5. {genocide-175 → genocide-180}/docs/guilty.rst +3 -2
  6. genocide-175/docs/reconsider.rst → genocide-180/docs/index.rst +26 -6
  7. genocide-180/docs/manual.rst +179 -0
  8. genocide-180/docs/reconsider.rst +61 -0
  9. {genocide-175 → genocide-180}/docs/writings.rst +7 -5
  10. {genocide-175 → genocide-180}/genocide/__init__.py +1 -1
  11. genocide-180/genocide/__main__.py +11 -0
  12. genocide-180/genocide/cli.py +48 -0
  13. genocide-180/genocide/console.py +87 -0
  14. genocide-180/genocide/daemon.py +50 -0
  15. genocide-180/genocide/main.py +269 -0
  16. genocide-180/genocide/modules/__init__.py +4 -0
  17. {genocide-175 → genocide-180}/genocide/modules/cmd.py +2 -2
  18. genocide-180/genocide/modules/err.py +20 -0
  19. genocide-180/genocide/modules/face.py +29 -0
  20. genocide-180/genocide/modules/fnd.py +29 -0
  21. genocide-180/genocide/modules/irc.py +649 -0
  22. genocide-180/genocide/modules/log.py +35 -0
  23. genocide-180/genocide/modules/mdl.py +430 -0
  24. genocide-180/genocide/modules/mod.py +22 -0
  25. genocide-180/genocide/modules/opm.py +178 -0
  26. {genocide-175 → genocide-180}/genocide/modules/req.py +2 -11
  27. genocide-180/genocide/modules/rss.py +357 -0
  28. genocide-180/genocide/modules/srv.py +28 -0
  29. genocide-180/genocide/modules/tdo.py +51 -0
  30. genocide-180/genocide/modules/thr.py +42 -0
  31. genocide-180/genocide/modules/upt.py +18 -0
  32. genocide-180/genocide/object.py +199 -0
  33. genocide-180/genocide/persist.py +276 -0
  34. genocide-180/genocide/runtime.py +195 -0
  35. genocide-180/genocide/service.py +28 -0
  36. {genocide-175 → genocide-180}/genocide.egg-info/PKG-INFO +5 -9
  37. {genocide-175 → genocide-180}/genocide.egg-info/SOURCES.txt +16 -18
  38. genocide-180/genocide.egg-info/entry_points.txt +5 -0
  39. {genocide-175 → genocide-180}/pyproject.toml +6 -3
  40. genocide-175/docs/index.rst +0 -78
  41. genocide-175/docs/manual.rst +0 -85
  42. genocide-175/genocide/__main__.py +0 -39
  43. genocide-175/genocide/client.py +0 -54
  44. genocide-175/genocide/cmds.py +0 -40
  45. genocide-175/genocide/console.py +0 -40
  46. genocide-175/genocide/decoder.py +0 -70
  47. genocide-175/genocide/default.py +0 -21
  48. genocide-175/genocide/encoder.py +0 -74
  49. genocide-175/genocide/errors.py +0 -57
  50. genocide-175/genocide/event.py +0 -47
  51. genocide-175/genocide/face.py +0 -77
  52. genocide-175/genocide/fleet.py +0 -47
  53. genocide-175/genocide/lock.py +0 -20
  54. genocide-175/genocide/log.py +0 -28
  55. genocide-175/genocide/main.py +0 -83
  56. genocide-175/genocide/modules/__init__.py +0 -15
  57. genocide-175/genocide/object.py +0 -157
  58. genocide-175/genocide/parse.py +0 -67
  59. genocide-175/genocide/persist.py +0 -155
  60. genocide-175/genocide/reactor.py +0 -70
  61. genocide-175/genocide/repeater.py +0 -23
  62. genocide-175/genocide/runtime.py +0 -37
  63. genocide-175/genocide/thread.py +0 -74
  64. genocide-175/genocide/timer.py +0 -56
  65. genocide-175/genocide/utils.py +0 -178
  66. genocide-175/genocide.egg-info/entry_points.txt +0 -2
  67. genocide-175/tests/test_none.py +0 -17
  68. {genocide-175 → genocide-180}/docs/ECHAabilify.png +0 -0
  69. {genocide-175 → genocide-180}/docs/ECHAclozapine.png +0 -0
  70. {genocide-175 → genocide-180}/docs/ECHAhaldol.png +0 -0
  71. {genocide-175 → genocide-180}/docs/ECHAzyprexa.png +0 -0
  72. {genocide-175 → genocide-180}/docs/OTP111.png +0 -0
  73. {genocide-175 → genocide-180}/docs/OTP222.png +0 -0
  74. {genocide-175 → genocide-180}/docs/_static/genocide.css +0 -0
  75. {genocide-175 → genocide-180}/docs/_templates/base.rst +0 -0
  76. {genocide-175 → genocide-180}/docs/_templates/class.rst +0 -0
  77. {genocide-175 → genocide-180}/docs/_templates/mine.rst +0 -0
  78. {genocide-175 → genocide-180}/docs/_templates/module.rst +0 -0
  79. {genocide-175 → genocide-180}/docs/about.rst +0 -0
  80. {genocide-175 → genocide-180}/docs/ack.png +0 -0
  81. {genocide-175 → genocide-180}/docs/ack3.png +0 -0
  82. {genocide-175 → genocide-180}/docs/bevestigd.jpg +0 -0
  83. {genocide-175 → genocide-180}/docs/bylaw.png +0 -0
  84. {genocide-175 → genocide-180}/docs/files/sitemap.xml +0 -0
  85. {genocide-175 → genocide-180}/docs/genocide.jpg +0 -0
  86. {genocide-175 → genocide-180}/docs/genocide.png +0 -0
  87. {genocide-175 → genocide-180}/docs/informed.jpg +0 -0
  88. {genocide-175 → genocide-180}/docs/kamer2.png +0 -0
  89. {genocide-175 → genocide-180}/docs/pdf/EM_Ack_OTP-CR-117_19.pdf +0 -0
  90. {genocide-175 → genocide-180}/docs/pdf/EM_T04_OTP-CR-117_19.pdf +0 -0
  91. {genocide-175 → genocide-180}/docs/pdf/EM_T07_OTP-CR-117_19_001.pdf +0 -0
  92. {genocide-175 → genocide-180}/docs/pdf/Kamer.pdf +0 -0
  93. {genocide-175 → genocide-180}/docs/pdf/Rome-Statute.pdf +0 -0
  94. {genocide-175 → genocide-180}/docs/pdf/bevestigd.pdf +0 -0
  95. {genocide-175 → genocide-180}/docs/request.rst +0 -0
  96. {genocide-175 → genocide-180}/docs/robots.txt +0 -0
  97. {genocide-175 → genocide-180}/docs/skull3.png +0 -0
  98. {genocide-175 → genocide-180}/docs/verbatim7.png +0 -0
  99. {genocide-175 → genocide-180}/genocide.egg-info/dependency_links.txt +0 -0
  100. {genocide-175 → genocide-180}/genocide.egg-info/requires.txt +0 -0
  101. {genocide-175 → genocide-180}/genocide.egg-info/top_level.txt +0 -0
  102. {genocide-175 → genocide-180}/genocide.egg-info/zip-safe +0 -0
  103. {genocide-175 → genocide-180}/setup.cfg +0 -0
  104. {genocide-175 → genocide-180}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: genocide
3
- Version: 175
3
+ Version: 180
4
4
  Summary: Elderly, Handicapped, Criminals, Wicked
5
5
  Author-email: Bart Thate <bthate@dds.nl>
6
6
  License: Public Domain
@@ -15,6 +15,9 @@ Classifier: Topic :: Utilities
15
15
  Description-Content-Type: text/x-rst
16
16
  Provides-Extra: dev
17
17
 
18
+ GENOCIDE
19
+ ========
20
+
18
21
  | **Information and Evidence Unit**
19
22
  | **Office of the Prosecutor**
20
23
  | **Post Office Box 19519**
@@ -39,7 +42,7 @@ Both the chamber suggesting these laws to the king and the king himself
39
42
  have been informed about the fact the the substances administered under
40
43
  these laws are proven to be poison.
41
44
 
42
- There is proof the medication used in forced treatements in the
45
+ There is proof the medication used in forced treatments in the
43
46
  netherlands are poison, see copies of the ECHA <`European Chemical Agency`>
44
47
  website for:
45
48
 
@@ -68,10 +71,3 @@ are poison at the time they voted for this law and the day the Wfz law took
68
71
  effect (1-1-2019), i ask the prosecutor to prosecute the king for making the
69
72
  commiting of the above mentioned crimes (killing, torture and impotent making)
70
73
  possible.
71
-
72
-
73
- p.s.
74
-
75
-
76
- 1) Entered in the Communications Register of the Office on ``4 march 2019``
77
- 2) Your reference ``OTP-CR-117/19``
@@ -1,3 +1,6 @@
1
+ GENOCIDE
2
+ ========
3
+
1
4
  | **Information and Evidence Unit**
2
5
  | **Office of the Prosecutor**
3
6
  | **Post Office Box 19519**
@@ -22,7 +25,7 @@ Both the chamber suggesting these laws to the king and the king himself
22
25
  have been informed about the fact the the substances administered under
23
26
  these laws are proven to be poison.
24
27
 
25
- There is proof the medication used in forced treatements in the
28
+ There is proof the medication used in forced treatments in the
26
29
  netherlands are poison, see copies of the ECHA <`European Chemical Agency`>
27
30
  website for:
28
31
 
@@ -51,10 +54,3 @@ are poison at the time they voted for this law and the day the Wfz law took
51
54
  effect (1-1-2019), i ask the prosecutor to prosecute the king for making the
52
55
  commiting of the above mentioned crimes (killing, torture and impotent making)
53
56
  possible.
54
-
55
-
56
- p.s.
57
-
58
-
59
- 1) Entered in the Communications Register of the Office on ``4 march 2019``
60
- 2) Your reference ``OTP-CR-117/19``
@@ -5,11 +5,11 @@
5
5
  # ruff: noqa: E402, E501
6
6
 
7
7
 
8
- "Office of the Prosecutor's Communication Record 117 of the year 2019."
8
+ "Office of the Prosecutor's Communication 117 of the year 2019"
9
9
 
10
10
 
11
11
  NAME = "genocide"
12
- VERSION = "175"
12
+ VERSION = "180"
13
13
 
14
14
 
15
15
  import os
@@ -60,7 +60,7 @@ extensions = [
60
60
  # -- Options for HTML output -------------------------------------------------
61
61
 
62
62
 
63
- html_title = "Office of the Prosecutor's Communication Record 117 of the year 2019."
63
+ html_title = "Elderly, Handicapped, Criminals, Wicked"
64
64
  html_style = 'genocide.css'
65
65
  html_static_path = ["_static", "_static/genocide.css", "files/sitemap.xml"]
66
66
  html_css_files = ["genocide.css",]
@@ -105,9 +105,7 @@ rst_prolog = '''.. image:: genocide.png
105
105
  .. raw:: html
106
106
 
107
107
  <center>
108
- <i>
109
108
  Elderly, Handicapped, Criminals, Wicked
110
- </i>
111
109
  </center>
112
110
 
113
111
  '''
@@ -128,7 +126,7 @@ rst_epilog = '''.. raw:: html
128
126
 
129
127
  '''
130
128
 
131
- autosummary_generate = True
129
+ autosummary_generate = False
132
130
  autodoc_default_flags = ['members', 'undoc-members', 'private-members', "imported-members"]
133
131
  autodoc_member_order = 'groupwise'
134
132
  autodoc_docstring_signature = False
@@ -136,8 +134,3 @@ autoclass_content = "class"
136
134
  nitpick_ignore = [
137
135
  ('py:class', 'builtins.BaseException'),
138
136
  ]
139
-
140
-
141
- def setup(app):
142
- app.add_css_file("custom.css")
143
- app.add_css_file("otpcr.css")
@@ -1,10 +1,12 @@
1
1
  .. _evidence:
2
2
 
3
+ .. title:: Evidence
4
+
5
+
3
6
  .. raw:: html
4
7
 
5
8
  <br><br>
6
-
7
- .. title:: Evidence
9
+ <center><b>EVIDENCE</b></center><br>
8
10
 
9
11
 
10
12
  .. _haldol:
@@ -12,11 +14,11 @@
12
14
 
13
15
  **HALDOL**
14
16
 
15
-
16
17
  .. raw:: html
17
18
 
18
19
  <br>
19
20
 
21
+
20
22
  .. image:: ECHAhaldol.png
21
23
  :width: 100%
22
24
 
@@ -1,11 +1,12 @@
1
1
  .. _guilty:
2
2
 
3
+ .. title:: Guilty
4
+
3
5
 
4
6
  .. raw:: html
5
7
 
6
8
  <br><br>
7
-
8
- .. title:: Guilty
9
+ <center><b>GUILTY</b></center><br>
9
10
 
10
11
 
11
12
  .. _informed:
@@ -1,11 +1,25 @@
1
- .. _reconsider:
1
+ .. _home:
2
+
2
3
 
3
4
  .. raw:: html
4
5
 
5
6
  <br><br>
6
7
 
7
- .. title:: Reconsider
8
8
 
9
+ .. title:: Home
10
+
11
+
12
+ .. raw:: html
13
+
14
+ <center>
15
+ <b>
16
+ RECONSIDER
17
+
18
+ .. raw:: html
19
+
20
+ </b>
21
+ </center>
22
+ <br><br>
9
23
 
10
24
  | **Information and Evidence Unit**
11
25
  | **Office of the Prosecutor**
@@ -17,6 +31,7 @@
17
31
 
18
32
  Hello Office of the Prosecutor,
19
33
 
34
+
20
35
  i write you in the context of communications and claims under art.15 of
21
36
  the Rome Statute. i want to inform the prosecutor that the king of the
22
37
  netherlands and his government are commiting 3 of the 5 crimes defined
@@ -62,8 +77,13 @@ prosecute the king for making the commiting of the above mentioned crimes
62
77
  (killing, torture and impotent making) possible.
63
78
 
64
79
 
65
- p.s.
66
-
80
+ .. toctree::
81
+ :hidden:
67
82
 
68
- 1) Entered in the Communications Register of the Office on 4 march 2019
69
- 2) Your reference ``OTP-CR-117/19``
83
+ about
84
+ reconsider
85
+ writings
86
+ evidence
87
+ guilty
88
+ request
89
+ manual
@@ -0,0 +1,179 @@
1
+ .. _manual:
2
+
3
+ .. title:: Manual
4
+
5
+
6
+ .. raw:: html
7
+
8
+ <br><br>
9
+ <center><b>MANUAL</b></center><br>
10
+
11
+ **NAME**
12
+
13
+ ``GENOCIDE`` - Elderly, Handicapped, Criminals, Wicked
14
+
15
+ **SYNOPSIS**
16
+
17
+ | ``genocide <cmd> [key=val] [key==val]``
18
+ | ``genoicdec [-i] [-v]``
19
+ | ``genocided``
20
+ | ``genocides``
21
+
22
+ **DESCRIPTION**
23
+
24
+
25
+ ``GENOCIDE`` holds evidence that king
26
+ netherlands is doing a genocide, a
27
+ written response where king
28
+ netherlands confirmed taking note
29
+ of “what i have written”, namely
30
+ :ref:`proof <evidence>` that medicine
31
+ he uses in treatment laws like zyprexa,
32
+ haldol, abilify and clozapine are
33
+ poison that make impotent, is both
34
+ physical (contracted muscles) and
35
+ mental (make people hallucinate)
36
+ torture and kills members of the
37
+ victim groups.
38
+
39
+ ``GENOCIDE`` contains :ref:`correspondence
40
+ <writings>` with the International Criminal
41
+ Court, asking for arrest of the king of the
42
+ netherlands, for the genocide he is committing
43
+ with his new treatment laws.
44
+
45
+ Current status is a :ref:`"no basis to proceed"
46
+ <writings>` judgement of the prosecutor which
47
+ requires a :ref:`"basis to prosecute" <home>`
48
+ to have the king actually arrested.
49
+
50
+ ``OTP-CR-117/19`` entered Communications Register on ``4 march 2019``
51
+
52
+ **INSTALL**
53
+
54
+ | ``pipx install genocide``
55
+ | ``pipx ensurepath``
56
+
57
+ <new terminal>
58
+
59
+ | ``$ genocide srv > genocide.service``
60
+ | ``$ sudo mv genocide.service /etc/systemd/system/``
61
+ | ``$ sudo systemctl enable genocide --now``
62
+ |
63
+ | joins ``#genocide`` on localhost
64
+
65
+ **USAGE**
66
+
67
+ without any argument the bot does nothing
68
+
69
+ | ``$ genocide``
70
+ | ``$``
71
+
72
+ see list of commands
73
+
74
+ | ``$ genocide cmd``
75
+ | ``cfg,cmd,dne,dpl,err,exp,imp,log,mod,mre,nme,``
76
+ | ``pwd,rem,req,res,rss,srv,syn,tdo,thr,upt``
77
+
78
+
79
+ start a console
80
+
81
+ | ``$ genocidec``
82
+ | ``>``
83
+
84
+ use -i to init modules
85
+
86
+ | ``$ genocidec -i``
87
+ | ``>``
88
+
89
+ start daemon
90
+
91
+ | ``$ genocided``
92
+ | ``$``
93
+
94
+ start service
95
+
96
+ | ``$ genocides``
97
+ |
98
+ | ``<runs until ctrl-c>``
99
+
100
+ show request to the prosecutor
101
+
102
+ | $ ``genocide req``
103
+ | Information and Evidence Unit
104
+ | Office of the Prosecutor
105
+ | Post Office Box 19519
106
+ | 2500 CM The Hague
107
+ | The Netherlands
108
+
109
+ **COMMANDS**
110
+
111
+ here is a list of available commands
112
+
113
+ | ``cfg`` - irc configuration
114
+ | ``cmd`` - commands
115
+ | ``dpl`` - sets display items
116
+ | ``err`` - show errors
117
+ | ``exp`` - export opml (stdout)
118
+ | ``imp`` - import opml
119
+ | ``log`` - log text
120
+ | ``mre`` - display cached output
121
+ | ``pwd`` - sasl nickserv name/pass
122
+ | ``rem`` - removes a rss feed
123
+ | ``res`` - restore deleted feeds
124
+ | ``req`` - reconsider
125
+ | ``rss`` - add a feed
126
+ | ``syn`` - sync rss feeds
127
+ | ``tdo`` - add todo item
128
+ | ``thr`` - show running threads
129
+ | ``upt`` - show uptime
130
+
131
+
132
+ **CONFIGURATION**
133
+
134
+ irc
135
+
136
+ | ``$ genocide cfg server=<server>``
137
+ | ``$ genocide cfg channel=<channel>``
138
+ | ``$ genocide cfg nick=<nick>``
139
+
140
+ sasl
141
+
142
+ | ``$ genocide pwd <nsvnick> <nspass>``
143
+ | ``$ genocide cfg password=<frompwd>``
144
+
145
+ rss
146
+
147
+ | ``$ genocide rss <url>``
148
+ | ``$ genocide dpl <url> <item1,item2>``
149
+ | ``$ genocide rem <url>``
150
+ | ``$ genocide nme <url> <name>``
151
+
152
+ opml
153
+
154
+ | ``$ genocide exp``
155
+ | ``$ genocide imp <filename>``
156
+
157
+
158
+ **SOURCE**
159
+
160
+ source is `here <https://github.com/bthate/genocide>`_
161
+
162
+ **FILES**
163
+
164
+ | ``~/.genocide``
165
+ | ``~/.local/bin/genocide``
166
+ | ``~/.local/bin/genocidec``
167
+ | ``~/.local/bin/genocided``
168
+ | ``~/.local/bin/genocides``
169
+ | ``~/.local/pipx/venvs/genocide/*``
170
+
171
+
172
+ **AUTHOR**
173
+
174
+ | Bart Thate <bthate@dds.nl>
175
+
176
+
177
+ **COPYRIGHT**
178
+
179
+ | ``GENOCIDE`` is Public Domain.
@@ -0,0 +1,61 @@
1
+ .. _reconsider:
2
+
3
+ .. title:: Reconsider
4
+
5
+
6
+ .. raw:: html
7
+
8
+ <br>
9
+ <center>
10
+ <b>
11
+
12
+ R E C O N S I D E R
13
+
14
+
15
+ .. raw:: html
16
+
17
+ </b>
18
+ </center>
19
+ <br>
20
+
21
+ | **Information and Evidence Unit**
22
+ | **Office of the Prosecutor**
23
+ | **Post Office Box 19519**
24
+ | **2500 CM The Hague**
25
+ | **The Netherlands**
26
+ |
27
+
28
+ Dear Mister Mark P. Dillon,
29
+
30
+ i received your writing to not to proceed with my request ``OTP-CR-117/19`` on 20-05-2019.
31
+
32
+ i write you to ask you to reconsider now removed evidence has been restored online again.
33
+
34
+ In chronological order:
35
+
36
+ 11-12-2017 I informed the chamber of the fact that the medicine used in treatments of psychiatric illnesses are poison. The proof exists of a url to the European Chemical Agency, showing that Haldol is a toxic substance (toxic if swallowed accompanied by a skull en bones). This link worked a the time the chamber member were informed.
37
+
38
+ 23-01-2018 The Chamber votes in favour of the Wet Forensische Zorg, Wet verplichte GGZ, Wet Zorg en Dwang knowing that the medicine used in these treatments are poison.
39
+
40
+ 05-10-2018 I inform the King of the fact that these medicine are poison
41
+
42
+ 01-01-2019 The Wet Forensische Zorg is activated
43
+
44
+ 10-01-2019 I inform local authorities of the informednes of both the chamber member and the king.
45
+
46
+ 21-01-2019 I inform the Office of the Prosecutor with proof that these medicine are poison and proof of the informedness of the King and the chamber members.
47
+
48
+ 23-01-2019 I withdraw the request to arrest king and chamber member from the local authorities. They didn't react at all.
49
+
50
+ 06-02-2019 The information on the ECHA website about Haldol being a poison is removed and a "nothing wrong with it" version is added
51
+
52
+ 25-02-2019 After consideration i decided to formaly ask the king and chamber members to be prosecuted.
53
+
54
+ 27-02-2019 I noticed that the site was updated and informed the Office of the Prosecutor about it.
55
+
56
+ 20-05-2019 The Prosecutor informs me of his decision to not to proceed, mentioning the he could reconsider if new evidence arises.
57
+
58
+ 25-06-2019 I talk to members of ECHA on twitter and got the link to the proof restored.
59
+
60
+
61
+ Knowing that the proof that Haldol is a poison was offline when you reached your conclusion to not to proceed, could you reconsider your conclusion now this proof is back online again ?
@@ -1,11 +1,13 @@
1
1
  .. _writings:
2
2
 
3
3
 
4
+ .. title:: Writings
5
+
6
+
4
7
  .. raw:: html
5
8
 
6
9
  <br><br>
7
-
8
- .. title:: Writings
10
+ <center><b>WRITINGS</b></center><br>
9
11
 
10
12
 
11
13
  **EMAIL 1**
@@ -19,7 +21,7 @@
19
21
  | **Date**: Mon, 21 Jan 2019 16:17:13 +0100
20
22
  |
21
23
 
22
- see :ref:`reconsider <home>` for content.
24
+ see :ref:`request <home>` for content.
23
25
 
24
26
 
25
27
  .. raw:: html
@@ -33,7 +35,7 @@ see :ref:`reconsider <home>` for content.
33
35
 
34
36
  <br>
35
37
 
36
- .. image:: ack.png
38
+ .. image:: ack3.png
37
39
  :width: 100%
38
40
 
39
41
 
@@ -69,7 +71,7 @@ see :ref:`reconsider <home>` for content.
69
71
  | **Date:** Wed, 26 Jun 2019 21:05:13 +0200
70
72
  |
71
73
 
72
- see :ref:`request <request>` for content.
74
+ see :ref:`reconsider <reconsider>` for content.
73
75
 
74
76
  .. raw:: html
75
77
 
@@ -1,4 +1,4 @@
1
1
  # This file is placed in the Public Domain.
2
2
 
3
3
 
4
- "OBX"
4
+ "package"
@@ -0,0 +1,11 @@
1
+ # This file is placed in the Public Domain.
2
+
3
+
4
+ "exec"
5
+
6
+
7
+ from .cli import wrapped
8
+
9
+
10
+ if __name__ == "__main__":
11
+ wrapped()
@@ -0,0 +1,48 @@
1
+ # This file is place in the Public Domain.
2
+ # pylint: disable=C
3
+
4
+
5
+ "cli"
6
+
7
+
8
+ import sys
9
+
10
+
11
+ from .main import Client, Config, Event, scanner, command, parse, wrap
12
+ from .modules import face
13
+ from .runtime import Errors
14
+
15
+
16
+ cfg = Config()
17
+
18
+
19
+ class CLI(Client):
20
+
21
+ def raw(self, txt):
22
+ print(txt)
23
+
24
+
25
+ def errors():
26
+ for error in Errors.errors:
27
+ for line in error:
28
+ print(line)
29
+
30
+
31
+ def wrapped():
32
+ wrap(main)
33
+ if "v" in cfg.opts:
34
+ errors()
35
+
36
+
37
+ def main():
38
+ parse(cfg, " ".join(sys.argv[1:]))
39
+ scanner(face)
40
+ evt = Event()
41
+ evt.txt = cfg.txt
42
+ csl = CLI()
43
+ command(csl, evt)
44
+ evt.wait()
45
+
46
+
47
+ if __name__ == "__main__":
48
+ wrapped()
@@ -0,0 +1,87 @@
1
+ # This file is placed in the Public Domain.
2
+ # pylint: disable=C,W0611,W0718
3
+
4
+
5
+ "console"
6
+
7
+
8
+ import readline
9
+ import sys
10
+ import termios
11
+ import time
12
+
13
+
14
+ from .main import Client, Config, Event, forever, parse, scanner
15
+ from .modules import face
16
+ from .persist import NAME
17
+ from .runtime import Errors, later
18
+
19
+
20
+ cfg = Config()
21
+
22
+
23
+ class Console(Client):
24
+
25
+ def callback(self, evt):
26
+ Client.callback(self, evt)
27
+ evt.wait()
28
+
29
+ def poll(self):
30
+ evt = Event()
31
+ evt.txt = input("> ")
32
+ return evt
33
+
34
+ def raw(self, txt):
35
+ print(txt)
36
+
37
+
38
+ def banner():
39
+ tme = time.ctime(time.time()).replace(" ", " ")
40
+ print(f"{NAME.upper()} since {tme}")
41
+
42
+
43
+ def errors():
44
+ for error in Errors.errors:
45
+ for line in error:
46
+ print(line)
47
+
48
+
49
+ def wrap(func):
50
+ old = None
51
+ try:
52
+ old = termios.tcgetattr(sys.stdin.fileno())
53
+ except termios.error:
54
+ pass
55
+ try:
56
+ func()
57
+ except (KeyboardInterrupt, EOFError):
58
+ print("")
59
+ except Exception as ex:
60
+ later(ex)
61
+ finally:
62
+ if old:
63
+ termios.tcsetattr(sys.stdin.fileno(), termios.TCSADRAIN, old)
64
+
65
+
66
+ def wrapped():
67
+ wrap(main)
68
+ if "v" in cfg.opts:
69
+ errors()
70
+
71
+
72
+ def main():
73
+ parse(cfg, " ".join(sys.argv[1:]))
74
+ if "v" in cfg.opts:
75
+ banner()
76
+ for mod, thr in scanner(face, init="i" in cfg.opts, disable=cfg.sets.dis):
77
+ if "v" in cfg.opts and "output" in dir(mod):
78
+ mod.output = print
79
+ if thr and "w" in cfg.opts:
80
+ thr.join()
81
+ csl = Console()
82
+ csl.start()
83
+ forever()
84
+
85
+
86
+ if __name__ == "__main__":
87
+ wrapped()
@@ -0,0 +1,50 @@
1
+ # This file is placed in the Public Domain.
2
+ # pylint: disable=C,W0212
3
+
4
+
5
+ "daemon"
6
+
7
+
8
+ import os
9
+ import sys
10
+
11
+
12
+ from .main import forever, privileges, scanner, wrap
13
+ from .modules import face
14
+ from .persist import NAME, pidfile, pidname
15
+
16
+
17
+ def daemon(verbose=False):
18
+ pid = os.fork()
19
+ if pid != 0:
20
+ os._exit(0)
21
+ os.setsid()
22
+ pid2 = os.fork()
23
+ if pid2 != 0:
24
+ os._exit(0)
25
+ if not verbose:
26
+ with open('/dev/null', 'r', encoding="utf-8") as sis:
27
+ os.dup2(sis.fileno(), sys.stdin.fileno())
28
+ with open('/dev/null', 'a+', encoding="utf-8") as sos:
29
+ os.dup2(sos.fileno(), sys.stdout.fileno())
30
+ with open('/dev/null', 'a+', encoding="utf-8") as ses:
31
+ os.dup2(ses.fileno(), sys.stderr.fileno())
32
+ os.umask(0)
33
+ os.chdir("/")
34
+ os.nice(10)
35
+
36
+
37
+ def wrapped():
38
+ wrap(main)
39
+
40
+
41
+ def main():
42
+ daemon()
43
+ privileges()
44
+ pidfile(pidname(NAME))
45
+ scanner(face, init=True)
46
+ forever()
47
+
48
+
49
+ if __name__ == "__main__":
50
+ wrapped()