genocide 152__tar.gz → 154__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 (98) hide show
  1. {genocide-152 → genocide-154}/PKG-INFO +4 -4
  2. {genocide-152 → genocide-154}/README.rst +2 -2
  3. genocide-154/bin/genocide +118 -0
  4. genocide-154/bin/genocided +88 -0
  5. {genocide-152 → genocide-154}/docs/_templates/base.rst +0 -1
  6. {genocide-152 → genocide-154}/docs/about.rst +4 -14
  7. {genocide-152 → genocide-154}/docs/conf.py +19 -6
  8. {genocide-152 → genocide-154}/docs/evidence.rst +6 -0
  9. {genocide-152 → genocide-154}/docs/guilty.rst +6 -0
  10. {genocide-152 → genocide-154}/docs/index.rst +4 -4
  11. {genocide-152 → genocide-154}/docs/manual.rst +32 -28
  12. genocide-154/docs/pdf/EM_Ack_OTP-CR-117_19.pdf +0 -0
  13. genocide-154/docs/robots.txt +2 -0
  14. genocide-154/docs/source.rst +53 -0
  15. {genocide-152 → genocide-154}/docs/writings.rst +6 -0
  16. {genocide-152 → genocide-154}/genocide/__init__.py +1 -3
  17. genocide-154/genocide/broker.py +41 -0
  18. genocide-154/genocide/client.py +189 -0
  19. genocide-154/genocide/disk.py +122 -0
  20. genocide-154/genocide/find.py +82 -0
  21. {genocide-152 → genocide-154}/genocide/handler.py +40 -19
  22. genocide-154/genocide/log.py +34 -0
  23. {genocide-152 → genocide-154}/genocide/modules/__init__.py +3 -7
  24. genocide-154/genocide/modules/cmd.py +13 -0
  25. genocide-154/genocide/modules/err.py +17 -0
  26. {genocide-152 → genocide-154}/genocide/modules/irc.py +34 -62
  27. {genocide-152 → genocide-154}/genocide/modules/log.py +6 -20
  28. genocide-154/genocide/modules/mod.py +20 -0
  29. {genocide-152 → genocide-154}/genocide/modules/req.py +3 -13
  30. {genocide-152 → genocide-154}/genocide/modules/rss.py +12 -32
  31. {genocide-152 → genocide-154}/genocide/modules/tdo.py +11 -23
  32. {genocide-152 → genocide-154}/genocide/modules/thr.py +2 -11
  33. {genocide-152 → genocide-154}/genocide/modules/tmr.py +22 -38
  34. {genocide-152 → genocide-154}/genocide/object.py +16 -23
  35. genocide-154/genocide/run.py +72 -0
  36. genocide-154/genocide/thread.py +180 -0
  37. {genocide-152 → genocide-154}/genocide.egg-info/PKG-INFO +4 -4
  38. {genocide-152 → genocide-154}/genocide.egg-info/SOURCES.txt +10 -27
  39. {genocide-152 → genocide-154}/pyproject.toml +9 -13
  40. {genocide-152 → genocide-154}/setup.py +4 -1
  41. genocide-152/MANUAL.rst +0 -187
  42. genocide-152/docs/arrest.png +0 -0
  43. genocide-152/docs/banner.png +0 -0
  44. genocide-152/docs/skull.jpg +0 -0
  45. genocide-152/docs/verbatim.rst +0 -24
  46. genocide-152/docs/verbatim2.png +0 -0
  47. genocide-152/docs/wallpaper.png +0 -0
  48. genocide-152/genocide/__main__.py +0 -173
  49. genocide-152/genocide/broker.py +0 -57
  50. genocide-152/genocide/client.py +0 -84
  51. genocide-152/genocide/default.py +0 -29
  52. genocide-152/genocide/errors.py +0 -87
  53. genocide-152/genocide/event.py +0 -54
  54. genocide-152/genocide/interface.py +0 -68
  55. genocide-152/genocide/modules/cmd.py +0 -20
  56. genocide-152/genocide/modules/dbg.py +0 -25
  57. genocide-152/genocide/modules/err.py +0 -31
  58. genocide-152/genocide/modules/flt.py +0 -25
  59. genocide-152/genocide/modules/fnd.py +0 -40
  60. genocide-152/genocide/modules/mbx.py +0 -120
  61. genocide-152/genocide/modules/mdl.py +0 -431
  62. genocide-152/genocide/modules/mod.py +0 -23
  63. genocide-152/genocide/modules/rst.py +0 -141
  64. genocide-152/genocide/modules/udp.py +0 -142
  65. genocide-152/genocide/parser.py +0 -75
  66. genocide-152/genocide/persist.py +0 -147
  67. genocide-152/genocide/repeater.py +0 -31
  68. genocide-152/genocide/thread.py +0 -89
  69. genocide-152/genocide/timer.py +0 -61
  70. genocide-152/genocide/utils.py +0 -68
  71. genocide-152/genocide/workdir.py +0 -48
  72. genocide-152/genocide.egg-info/entry_points.txt +0 -2
  73. {genocide-152 → genocide-154}/docs/ECHAabilify.png +0 -0
  74. {genocide-152 → genocide-154}/docs/ECHAclozapine.png +0 -0
  75. {genocide-152 → genocide-154}/docs/ECHAhaldol.png +0 -0
  76. {genocide-152 → genocide-154}/docs/ECHAzyprexa.png +0 -0
  77. {genocide-152 → genocide-154}/docs/OTP1.png +0 -0
  78. {genocide-152 → genocide-154}/docs/OTP2.png +0 -0
  79. {genocide-152 → genocide-154}/docs/_static/genocide.css +0 -0
  80. {genocide-152 → genocide-154}/docs/_templates/class.rst +0 -0
  81. {genocide-152 → genocide-154}/docs/_templates/mine.rst +0 -0
  82. {genocide-152 → genocide-154}/docs/_templates/module.rst +0 -0
  83. {genocide-152 → genocide-154}/docs/bevestigd.jpg +0 -0
  84. {genocide-152 → genocide-154}/docs/genocide.png +0 -0
  85. {genocide-152 → genocide-154}/docs/informed.jpg +0 -0
  86. {genocide-152 → genocide-154}/docs/kamer.png +0 -0
  87. {genocide-152 → genocide-154}/docs/pdf/EM_T04_OTP-CR-117_19.pdf +0 -0
  88. {genocide-152 → genocide-154}/docs/pdf/EM_T07_OTP-CR-117_19_001.pdf +0 -0
  89. {genocide-152 → genocide-154}/docs/pdf/Kamer.pdf +0 -0
  90. {genocide-152 → genocide-154}/docs/pdf/Rome-Statute.pdf +0 -0
  91. {genocide-152 → genocide-154}/docs/pdf/bevestigd.pdf +0 -0
  92. {genocide-152 → genocide-154}/docs/request.rst +0 -0
  93. {genocide-152 → genocide-154}/docs/skull3.png +0 -0
  94. {genocide-152 → genocide-154}/genocide.egg-info/dependency_links.txt +0 -0
  95. {genocide-152 → genocide-154}/genocide.egg-info/requires.txt +0 -0
  96. {genocide-152 → genocide-154}/genocide.egg-info/top_level.txt +0 -0
  97. {genocide-152 → genocide-154}/genocide.egg-info/zip-safe +0 -0
  98. {genocide-152 → genocide-154}/setup.cfg +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: genocide
3
- Version: 152
4
- Summary: OTP-CR-117/19
3
+ Version: 154
4
+ Summary: @KarimKhanQC reconsider OTP-CR-117/19
5
5
  Author-email: Bart Thate <bthate@dds.nl>
6
6
  License: Public Domain
7
7
  Project-URL: home, https://pypi.org/project/genocide
@@ -19,12 +19,12 @@ Provides-Extra: dev
19
19
  | **Office of the Prosecutor**
20
20
  | **Post Office Box 19519**
21
21
  | **2500 CM The Hague**
22
- | **The Netherlands** ``OTP-CR-117/19``
22
+ | **The Netherlands**
23
23
  |
24
24
  |
25
25
 
26
26
 
27
- Hello Office of the Prosecutor,
27
+ Hello Office of the Prosecutor, ``OTP-CR-117/19``
28
28
 
29
29
  i write you in the context of communications and claims under art.15 of
30
30
  the Rome Statute. i want to inform the prosecutor that the king of the
@@ -2,12 +2,12 @@
2
2
  | **Office of the Prosecutor**
3
3
  | **Post Office Box 19519**
4
4
  | **2500 CM The Hague**
5
- | **The Netherlands** ``OTP-CR-117/19``
5
+ | **The Netherlands**
6
6
  |
7
7
  |
8
8
 
9
9
 
10
- Hello Office of the Prosecutor,
10
+ Hello Office of the Prosecutor, ``OTP-CR-117/19``
11
11
 
12
12
  i write you in the context of communications and claims under art.15 of
13
13
  the Rome Statute. i want to inform the prosecutor that the king of the
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env python3
2
+ # This file is placed in the Public Domain.
3
+ #
4
+ # pylint: disable=C0413
5
+
6
+
7
+ "main"
8
+
9
+
10
+ import os
11
+ import readline
12
+ import sys
13
+ import termios
14
+ import time
15
+
16
+
17
+ sys.path.insert(0, os.getcwd())
18
+
19
+
20
+ from genocide.client import Client, cmnd, parse
21
+ from genocide.disk import Workdir, skel
22
+ from genocide.handler import Event
23
+ from genocide.log import debug, enable
24
+ from genocide.object import Default
25
+ from genocide.run import broker, init, scan
26
+ from genocide.thread import errors, setout
27
+
28
+
29
+ from genocide import modules
30
+
31
+
32
+ Cfg = Default()
33
+ Cfg.dis = ""
34
+ Cfg.mod = "cmd,err,log,mod,req,tdo,thr,tmr"
35
+ Cfg.opts = ""
36
+ Cfg.name = __file__.rsplit(os.sep, maxsplit=1)[-1]
37
+ Cfg.version = "154"
38
+ Cfg.wdr = os.path.expanduser(f"~/.{Cfg.name}")
39
+ Cfg.pidfile = os.path.join(Cfg.wdr, f"{Cfg.name}.pid")
40
+
41
+
42
+ Workdir.workdir = Cfg.wdr
43
+
44
+
45
+ class Console(Client):
46
+
47
+ "Console"
48
+
49
+ def __init__(self):
50
+ Client.__init__(self)
51
+ broker.add(self)
52
+
53
+ def announce(self, txt):
54
+ "disable announce."
55
+
56
+ def callback(self, evt):
57
+ "wait for callback."
58
+ Client.callback(self, evt)
59
+ evt.wait()
60
+
61
+ def poll(self):
62
+ "poll console and create event."
63
+ evt = Event()
64
+ evt.orig = object.__repr__(self)
65
+ evt.txt = input("> ")
66
+ evt.type = "command"
67
+ return evt
68
+
69
+ def say(self, _channel, txt):
70
+ "print to console"
71
+ txt = txt.encode('utf-8', 'replace').decode()
72
+ print(txt)
73
+
74
+
75
+ def wrap(func):
76
+ "restore console."
77
+ old2 = None
78
+ try:
79
+ old2 = termios.tcgetattr(sys.stdin.fileno())
80
+ except termios.error:
81
+ pass
82
+ try:
83
+ func()
84
+ except (KeyboardInterrupt, EOFError):
85
+ print("")
86
+ finally:
87
+ if old2:
88
+ termios.tcsetattr(sys.stdin.fileno(), termios.TCSADRAIN, old2)
89
+
90
+
91
+ def main():
92
+ "main"
93
+ parse(Cfg, " ".join(sys.argv[1:]))
94
+ skel()
95
+ enable(print)
96
+ setout(print)
97
+ if "a" in Cfg.opts:
98
+ Cfg.mod = ",".join(modules.__dir__())
99
+ if "v" in Cfg.opts:
100
+ dte = " ".join(time.ctime(time.time()).replace(" ", " ").split()[1:])
101
+ debug(f'{dte} {Cfg.name.upper()} {Cfg.opts.upper()} {Cfg.mod.upper()}')
102
+ if "h" in Cfg.opts:
103
+ print(__doc__)
104
+ scan(modules, Cfg.mod, Cfg.sets.dis)
105
+ if "c" in Cfg.opts:
106
+ init(modules, Cfg.mod, Cfg.sets.dis)
107
+ csl = Console()
108
+ csl.start()
109
+ while 1:
110
+ time.sleep(1.0)
111
+ elif Cfg.otxt:
112
+ cmnd(Cfg.otxt, print)
113
+
114
+
115
+ if __name__ == "__main__":
116
+ readline.redisplay()
117
+ wrap(main)
118
+ errors()
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env python3
2
+ # This file is placed in the Public Domain.
3
+ #
4
+ # pylint: disable=C0413,W0212
5
+
6
+
7
+ "daemon"
8
+
9
+
10
+ import getpass
11
+ import os
12
+ import pathlib
13
+ import pwd
14
+ import sys
15
+ import time
16
+
17
+
18
+ from genocide.disk import Workdir, skel
19
+ from genocide.object import Default
20
+ from genocide.run import init, scan
21
+ from genocide.thread import errors
22
+
23
+
24
+ from genocide import modules
25
+
26
+
27
+ Cfg = Default()
28
+ Cfg.dis = ""
29
+ Cfg.name = "genocide"
30
+ Cfg.mod = "cmd,mod,req"
31
+ Cfg.version = "154"
32
+ Cfg.opts = ""
33
+ Cfg.wdr = os.path.expanduser(f"~/.{Cfg.name}")
34
+ Cfg.pidfile = os.path.join(Cfg.wdr, f"{Cfg.name}.pid")
35
+
36
+
37
+ Workdir.workdir = Cfg.wdr
38
+
39
+
40
+ def daemon(pidfile, verbose=False):
41
+ "switch to background."
42
+ pid = os.fork()
43
+ if pid != 0:
44
+ os._exit(0)
45
+ os.setsid()
46
+ pid2 = os.fork()
47
+ if pid2 != 0:
48
+ os._exit(0)
49
+ if not verbose:
50
+ with open('/dev/null', 'r', encoding="utf-8") as sis:
51
+ os.dup2(sis.fileno(), sys.stdin.fileno())
52
+ with open('/dev/null', 'a+', encoding="utf-8") as sos:
53
+ os.dup2(sos.fileno(), sys.stdout.fileno())
54
+ with open('/dev/null', 'a+', encoding="utf-8") as ses:
55
+ os.dup2(ses.fileno(), sys.stderr.fileno())
56
+ os.umask(0)
57
+ os.chdir("/")
58
+ if os.path.exists(pidfile):
59
+ os.unlink(pidfile)
60
+ path = pathlib.Path(pidfile)
61
+ path.parent.mkdir(parents=True, exist_ok=True)
62
+ with open(pidfile, "w", encoding="utf-8") as fds:
63
+ fds.write(str(os.getpid()))
64
+
65
+
66
+ def privileges(username):
67
+ "drop privileges."
68
+ pwnam = pwd.getpwnam(username)
69
+ os.setgid(pwnam.pw_gid)
70
+ os.setuid(pwnam.pw_uid)
71
+
72
+
73
+ def main():
74
+ "main"
75
+ skel()
76
+ Cfg.mod = ",".join(dir(modules))
77
+ Cfg.user = getpass.getuser()
78
+ daemon(Cfg.pidfile, "-v" in sys.argv)
79
+ privileges(Cfg.user)
80
+ scan(modules, Cfg.mod)
81
+ init(modules, Cfg.mod)
82
+ while 1:
83
+ time.sleep(1.0)
84
+
85
+
86
+ if __name__ == "__main__":
87
+ main()
88
+ errors()
@@ -5,7 +5,6 @@
5
5
 
6
6
  .. raw:: html
7
7
 
8
- <br>
9
8
  <center>
10
9
 
11
10
  **{{ fullname }}**
@@ -1,26 +1,16 @@
1
1
  .. _about:
2
2
 
3
-
4
3
  .. raw:: html
5
4
 
6
- <center>
7
- <i>
8
- By law, with the use of poison,
9
- killing, torturing, castrating, destroying,
10
- in whole or in part,
11
- all elderly and all handicapped (Wzd), all criminals (Wfz)
12
- and all psychiatric patients (WvGGZ)
13
- here in the Netherlands
14
- </i>
15
- </center>
16
5
  <br>
17
6
 
7
+ .. title:: About
18
8
 
19
- .. raw:: html
20
9
 
21
- <br><br>
10
+ .. raw:: html
22
11
 
23
- .. title:: About
12
+ <center><b>ABOUT</b></center>
13
+ <br>
24
14
 
25
15
 
26
16
  In 2018 i informed the king of the netherlands that what he calls
@@ -87,7 +87,7 @@ html_theme_options = {
87
87
  'show_relbar_top': False,
88
88
  'sidebar_width': 10,
89
89
  }
90
- html_favicon = "skull.jpg"
90
+ html_favicon = "skull3.png"
91
91
  html_extra_path = []
92
92
  html_last_updated_fmt = '%Y-%b-%d'
93
93
  html_additional_pages = {}
@@ -114,24 +114,37 @@ rst_prolog = '''.. image:: genocide.png
114
114
  :height: 2.6cm
115
115
  :target: index.html
116
116
 
117
+ .. raw:: html
118
+
119
+ <center>
120
+ <i>
121
+ By law, with the use of poison, killing, torturing, castrating, destroying in whole or in part,
122
+ </i>
123
+ </center>
124
+ <center>
125
+ <i>
126
+ all elderly and all handicapped (Wzd), all criminals (Wfz) and all psychiatric patients (WvGGZ)
127
+ </i>
128
+ </center>
129
+ <center>
130
+ <i>
131
+ here in the Netherlands.
132
+ </i>
133
+ </center>
117
134
  '''
118
135
 
119
136
  rst_epilog = '''.. raw:: html
120
137
 
121
- <br>
122
- <br>
123
138
  <br>
124
139
  <center>
125
140
  <b>
126
141
 
127
- :ref:`about <about>` - :ref:`writings <writings>` - :ref:`evidence <evidence>` - :ref:`guilty <guilty>` - :ref:`reconsider <reconsider>`
128
-
142
+ :ref:`about <about>` - :ref:`evidence <evidence>` - :ref:`guilty <guilty>` - :ref:`writings <writings>` - :ref:`reconsider <reconsider>`
129
143
 
130
144
  .. raw:: html
131
145
 
132
146
  </b>
133
147
  </center>
134
-
135
148
  '''
136
149
 
137
150
  autosummary_generate = True
@@ -7,6 +7,12 @@
7
7
  .. title:: Evidence
8
8
 
9
9
 
10
+ .. raw:: html
11
+
12
+ <center><b>EVIDENCE</b></center>
13
+ <br>
14
+
15
+
10
16
  .. _haldol:
11
17
 
12
18
 
@@ -8,6 +8,12 @@
8
8
  .. title:: Guilty
9
9
 
10
10
 
11
+ .. raw:: html
12
+
13
+ <center><b>GUILTY</b></center>
14
+ <br>
15
+
16
+
11
17
  .. _informed:
12
18
 
13
19
 
@@ -5,7 +5,6 @@
5
5
 
6
6
  <br>
7
7
 
8
-
9
8
  .. title:: Reconsider
10
9
 
11
10
 
@@ -13,15 +12,16 @@
13
12
  | **Office of the Prosecutor**
14
13
  | **Post Office Box 19519**
15
14
  | **2500 CM The Hague**
16
- | **The Netherlands** ``OTP-CR-117/19``
15
+ | **The Netherlands**
17
16
  |
18
17
 
19
- Hello Office of the Prosecutor,
18
+
19
+ Hello Office of the Prosecutor,
20
20
 
21
21
  i write you in the context of communications and claims under art.15 of
22
22
  the Rome Statute. i want to inform the prosecutor that the king of the
23
23
  netherlands and his government are commiting 3 of the 5 crimes defined
24
- in the Rome Statute.
24
+ in the Rome Statute.
25
25
 
26
26
  The dutch government has introduced three new forced care laws, the Wfz
27
27
  (wet forensische zorg) for criminals, the WvGGZ (Wet verplichte GGZ) for
@@ -1,6 +1,5 @@
1
1
  .. _manual:
2
2
 
3
-
4
3
  .. raw:: html
5
4
 
6
5
  <br>
@@ -8,9 +7,14 @@
8
7
  .. title:: Manual
9
8
 
10
9
 
10
+ .. raw:: html
11
+
12
+ <center><b>MANUAL</b></center>
13
+ <br>
14
+
11
15
  **NAME**
12
16
 
13
- **GENOCIDE** - OTP-CR-117/19
17
+ ``GENOCIDE`` -- @KarimKhanQC reconsider OTP-CR-117/19
14
18
 
15
19
 
16
20
  **INSTALL**
@@ -19,19 +23,21 @@
19
23
  ::
20
24
 
21
25
  $ pipx install genocide
26
+ $ pipx ensurepath
22
27
 
23
28
 
24
29
  **SYNOPSIS**
25
30
 
26
31
  ::
27
32
 
28
- genocide <cmd> [key=val] [key==val]
29
- genocide [-a] [-c] [-d] [-v]
33
+ genocide <cmd> [key=val] [key==val]
34
+ genocide [-a] [-c] [-v]
35
+ genocided [-v]
30
36
 
31
37
 
32
38
  **DESCRIPTION**
33
39
 
34
- **GENOCIDE** holds evidence that king
40
+ ``GENOCIDE`` holds evidence that king
35
41
  netherlands is doing a genocide, a
36
42
  written response where king
37
43
  netherlands confirmed taking note
@@ -43,19 +49,18 @@
43
49
  physical (contracted muscles) and
44
50
  mental (make people hallucinate)
45
51
  torture and kills members of the
46
- victim groups.
52
+ victim groups :ref:`. <source>`
47
53
 
48
- **GENOCIDE** contains :ref:`correspondence <writings>`
49
- with the International Criminal Court,
50
- asking for arrest of the king of
51
- the netherlands, for the genocide
52
- he is committing with his new
53
- treatement laws.
54
+ ``GENOCIDE`` contains :ref:`correspondence
55
+ <writings>` with the International Criminal
56
+ Court, asking for arrest of the king of the
57
+ netherlands, for the genocide he is committing
58
+ with his new treatement laws.
54
59
 
55
- Current status is "no basis to proceed"
56
- :ref:`judgement <guilty>` of the prosecutor
57
- which requires a "basis to prosecute" to
58
- have the king actually arrested.
60
+ Current status is a :ref:`"no basis to proceed"
61
+ <writings>` judgement of the prosecutor which
62
+ requires a :ref:`"basis to prosecute" <reconsider>`
63
+ to have the king actually arrested.
59
64
 
60
65
 
61
66
  **USAGE**
@@ -72,7 +77,7 @@
72
77
  ::
73
78
 
74
79
  $ genocide cmd
75
- cfg,cmd,mre,now,pwd
80
+ cmd,dne,err,log,mod,req,tdo,thr,tmr
76
81
 
77
82
 
78
83
  start a console
@@ -87,14 +92,14 @@
87
92
  ::
88
93
 
89
94
  $ genocide -cv
90
- GENOCIDE started CV started Sat Dec 2 17:53:24 2023
95
+ May 12 05:51:49 2024 GENOCIDE CV CMD,ERR,LOG,MOD,REQ,TDO,THR,TMR
91
96
  >
92
97
 
93
98
  start daemon
94
99
 
95
100
  ::
96
101
 
97
- $ genocide
102
+ $ genocided
98
103
  $
99
104
 
100
105
 
@@ -109,13 +114,6 @@
109
114
  2500 CM The Hague
110
115
  The Netherlands
111
116
 
112
- show how many died in the WvGGZ
113
-
114
- ::
115
-
116
- $ genocide now
117
- 4y18d patient #47324 died from mental illness (14/32/11682) every 44m59s
118
-
119
117
 
120
118
  **CONFIGURATION**
121
119
 
@@ -159,7 +157,7 @@
159
157
 
160
158
  **SYSTEMD**
161
159
 
162
- save the following it in /etc/systems/system/genocide.service
160
+ save the following it in /etc/systemd/system/genocide.service
163
161
  and replace "<user>" with the user running pipx
164
162
 
165
163
  ::
@@ -174,7 +172,7 @@
174
172
  User=<user>
175
173
  Group=<user>
176
174
  WorkingDirectory=/home/<user>/.genocide
177
- ExecStart=/home/<user>/.local/pipx/venvs/genocide/bin/genocide -d
175
+ ExecStart=/home/<user>/.local/pipx/venvs/genocide/bin/genocided
178
176
  RemainAfterExit=yes
179
177
 
180
178
  [Install]
@@ -191,12 +189,18 @@
191
189
  default channel/server is #genocide on localhost
192
190
 
193
191
 
192
+ **SOURCE**
193
+
194
+ source is :ref:`here <source>`
195
+
196
+
194
197
  **FILES**
195
198
 
196
199
  ::
197
200
 
198
201
  ~/.genocide
199
202
  ~/.local/bin/genocide
203
+ ~/.local/bin/genocided
200
204
  ~/.local/pipx/venvs/genocide/
201
205
 
202
206
 
@@ -0,0 +1,2 @@
1
+ User-agent: *
2
+ Allow: /
@@ -0,0 +1,53 @@
1
+ .. _source:
2
+
3
+
4
+ .. raw:: html
5
+
6
+ </center>
7
+ <br>
8
+
9
+ .. title:: Source
10
+
11
+
12
+ .. raw:: html
13
+
14
+ <center><b>SOURCE</b></center>
15
+ <br>
16
+
17
+
18
+ **GENOCIDE**
19
+
20
+
21
+ .. autosummary::
22
+ :toctree:
23
+ :template: base.rst
24
+
25
+
26
+ genocide.broker list of bots
27
+ genocide.client clients
28
+ genocide.disk storage
29
+ genocide.find locate
30
+ genocide.handler event handler
31
+ genocide.log logging
32
+ genocide.object clean namespace
33
+ genocide.run runtime
34
+ genocide.thread threads
35
+
36
+
37
+ **MODULES**
38
+
39
+
40
+ .. autosummary::
41
+ :toctree:
42
+ :template: base.rst
43
+
44
+ genocide.modules.cmd list of commands
45
+ genocide.modules.err show errors
46
+ genocide.modules.irc internet realy chat
47
+ genocide.modules.log log text
48
+ genocide.modules.mod list of modules
49
+ genocide.modules.req request
50
+ genocide.modules.rss rich site syndicate
51
+ genocide.modules.tdo todo items
52
+ genocide.modules.thr list of threads
53
+ genocide.modules.tmr timers
@@ -8,6 +8,12 @@
8
8
  .. title:: Writings
9
9
 
10
10
 
11
+ .. raw:: html
12
+
13
+ <center><b>WRITINGS</b></center>
14
+ <br>
15
+
16
+
11
17
  **EMAIL 1**
12
18
 
13
19
 
@@ -1,6 +1,4 @@
1
1
  # This file is placed in the Public Domain.
2
- #
3
- # pylint: disable=C,R
4
2
 
5
3
 
6
- "bot library"
4
+ "OTP-CR-117/19"
@@ -0,0 +1,41 @@
1
+ # This file is placed in the Public Domain.
2
+
3
+
4
+ "broker"
5
+
6
+
7
+ from .object import Object, keys
8
+
9
+
10
+ rpr = object.__repr__
11
+
12
+
13
+ class Broker:
14
+
15
+ "Broker"
16
+
17
+ def __init__(self):
18
+ self.objs = Object()
19
+
20
+ def add(self, obj):
21
+ "add an object to the broker."
22
+ setattr(self.objs, rpr(obj), obj)
23
+
24
+ def first(self):
25
+ "return first object."
26
+ for key in keys(self.objs):
27
+ return getattr(self.objs, key)
28
+
29
+ def get(self, orig):
30
+ "return object by origin (repr)"
31
+ return getattr(self.objs, orig, None)
32
+
33
+ def remove(self, obj):
34
+ "remove object from broker"
35
+ delattr(self.objs, rpr(obj))
36
+
37
+
38
+ def __dir__():
39
+ return (
40
+ 'Broker',
41
+ )