drymer пре 3 година
комит
ae4b9b3c94
8 измењених фајлова са 755 додато и 0 уклоњено
  1. 7
    0
      .gitignore
  2. 173
    0
      README.md
  3. 141
    0
      README.org
  4. 250
    0
      README.rst
  5. 111
    0
      jabbergram.py
  6. 2
    0
      requirements.txt
  7. 42
    0
      seeIdGroups.py
  8. 29
    0
      setup.py

+ 7
- 0
.gitignore Прегледај датотеку

@@ -0,0 +1,7 @@
1
+*.ini
2
+.dir-locals.el
3
+dist
4
+MANIFEST
5
+*.egg-info
6
+__pycache__
7
+

+ 173
- 0
README.md Прегледај датотеку

@@ -0,0 +1,173 @@
1
+<div id="table-of-contents">
2
+<h2>Table of Contents</h2>
3
+<div id="text-table-of-contents">
4
+<ul>
5
+<li><a href="#orgheadline13">1. jabbergram</a>
6
+<ul>
7
+<li><a href="#orgheadline6">1.1. English</a>
8
+<ul>
9
+<li><a href="#orgheadline1">1.1.1. About</a></li>
10
+<li><a href="#orgheadline2">1.1.2. Installation</a></li>
11
+<li><a href="#orgheadline3">1.1.3. Configuration</a></li>
12
+<li><a href="#orgheadline4">1.1.4. Usage</a></li>
13
+<li><a href="#orgheadline5">1.1.5. License</a></li>
14
+</ul>
15
+</li>
16
+<li><a href="#orgheadline12">1.2. Castellano</a>
17
+<ul>
18
+<li><a href="#orgheadline7">1.2.1. Acerca de</a></li>
19
+<li><a href="#orgheadline8">1.2.2. Instalación</a></li>
20
+<li><a href="#orgheadline9">1.2.3. Configuración</a></li>
21
+<li><a href="#orgheadline10">1.2.4. Uso</a></li>
22
+<li><a href="#orgheadline11">1.2.5. Licencia</a></li>
23
+</ul>
24
+</li>
25
+</ul>
26
+</li>
27
+</ul>
28
+</div>
29
+</div>
30
+
31
+# jabbergram<a id="orgheadline13"></a>
32
+
33
+## English<a id="orgheadline6"></a>
34
+
35
+### About<a id="orgheadline1"></a>
36
+
37
+With this program, it's possible to use a MuC `XMPP` room to talk to a group on `Telegram` and vice versa. The aim of this program is to be just a simple gateway, just pass text from one way to the other. Once it's stable, it probably won't have more improvements, since I don't need them.
38
+
39
+### Installation<a id="orgheadline2"></a>
40
+
41
+As with any program that uses python, it should be used a virtual environment (virtualenv), but that is user selectable. It's possible to use one of the next installation methods:
42
+
43
+Install via pip:
44
+
45
+    $ su -c "pip3 install jabbergram"
46
+
47
+Clone the repository:
48
+
49
+    $ git clone git://daemons.cf/jabbergram
50
+    $ cd jabbergram
51
+    $ su -c "pip3 install -r requirements.txt"
52
+    $ su -c "python3 setup.py install"
53
+
54
+### Configuration<a id="orgheadline3"></a>
55
+
56
+This program is simple, it even doesn't have a `help` menu. First thing you need to do is to create `Telegram` Bot. To do so, you must have a telegram account and talk to [BotFather](https://telegram.me/botfather). Then, execute:
57
+
58
+    /start
59
+    /newbot
60
+    YourNameBot # ended in bot, always
61
+    # then it will show your bot token, save it
62
+    /setprivacy
63
+    YourNameBot
64
+    # now press Disable
65
+
66
+The `/setprivacy` option is to make the bot read all what it's said to him, not only when using commands. It's necessary to make `jabbergram` work. More info on creating `Telegram` bots at their [webpage](https://core.telegram.org/bots).
67
+
68
+Then, you will have to create a config file. We'll call it `config.ini`. In that file, enter the next parameters:
69
+
70
+    [config]
71
+    jid = exampleJid@nope.org
72
+    password = difficultPassword
73
+    muc_room = exampleMuc@muc.nope.org
74
+    nick = jabbergram
75
+    token = jabbergramBotTokken
76
+    group = -10293943920
77
+
78
+The only thing worth mentioning is the `token` section, which is said to you when creating the bot, and the `group`, that is the `Telegram` group ID.
79
+
80
+There's no easy way to see this from telegram, so you can use the separate utility called `seeIdGroups.py`. To execute it, you only need to set the `token` parameter in the config file. You will need that somebody invite the bot to the group. Also, people on that group must send some messages, so the utility can grab it's id. It may take a couple. When you have the group ID you want, just press Ctrl-c, copy it to the config file (even the minus symbol), and the configuration will be done.
81
+
82
+### Usage<a id="orgheadline4"></a>
83
+
84
+You can create all config files you want. You will only need to pass it as parameter, but if you don't it will try to grab `config.ini` by default, and it will fail if it doesn't exist:
85
+
86
+    # it's advisable to use tmux or screen to execute the next order
87
+    $ jabbergram.py example.ini
88
+
89
+### License<a id="orgheadline5"></a>
90
+
91
+    This program is free software: you can redistribute it and / or modify
92
+    it under the terms of the GNU General Public License as published by
93
+    the Free Software Foundation, Either version 3 of the License, or
94
+    (At your option) any later version.
95
+
96
+    This program is distributed in the hope That it will be useful,
97
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
98
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
99
+    GNU General Public License for more details.
100
+
101
+    You should have received a copy of the GNU General Public License
102
+    Along With This Program. If not, see <http://www.gnu.org/licenses/>.
103
+
104
+## Castellano<a id="orgheadline12"></a>
105
+
106
+### Acerca de<a id="orgheadline7"></a>
107
+
108
+Con este programa, es posible utilizar una sala `XMPP` para hablar con un grupo de `Telegram` y viceversa. El objetivo de este programa es el de ser sólo una pasarela sencilla, sólo tiene que pasar el texto de un lado al otro. Una vez que sea estable, probablemente no tendrá más mejoras, ya que yo no las necesito.
109
+
110
+### Instalación<a id="orgheadline8"></a>
111
+
112
+Como con cualquier programa escrito en `Python`, deberia ser usado en un entorno virtual (virtualenv), pero eso queda a la elección del usuario. Es posible utilizar uno de los siguientes métodos de instalación:
113
+
114
+Instalar a través de `pip`:
115
+
116
+    $ su -c "pip3 instalar jabbergram"
117
+
118
+Clonar el repositorio:
119
+
120
+    $ git clone git: //daemons.cf/jabbergram
121
+    $ cd jabbergram
122
+    $ su -c "pip3 instalar requirements.txt -r"
123
+    $ su -c "python3 setup.py instalar"
124
+
125
+### Configuración<a id="orgheadline9"></a>
126
+
127
+Este programa es simple, no tiene ni un menú de `ayuda`. Lo primero que hay que hacer es crear el bot de `Telegrama`. Para ello, hay que tener una cuenta de `Telegram` y hablar con [BotFather](https://telegram.me/botfather). A continuación, ejecuta:
128
+
129
+    /comienzo
130
+    /newbot
131
+    NombreDelBot # terminado en bot, siempre
132
+    # A continuación, se mostrará el token del bot, hay que guardarlo
133
+    /setprivacy
134
+    NombreDelBot
135
+    # Ahora hay que pulsar desactivar
136
+
137
+La opción `/setprivacy` es para hacer que el robot pueda leer todo lo que se dice en el grupo, no sólo cuando se utilizan los comandos. Es necesario para hacer que `jabbergram` funcione. Más información sobre la creación los bots de `Telegrama` en su [página web](https://core.telegram.org/bots).
138
+
139
+A continuación, hay que crear un archivo de configuración, que llamaremos `config.ini`. En ese archivo, introduce los siguientes parámetros:
140
+
141
+    [Config]
142
+    JID = exampleJid@nope.org
143
+    password = difficultPassword
144
+    muc_room = exampleMuc@muc.nope.org
145
+    nick = jabbergram
146
+    token = jabbergramBotTokken
147
+    group = -10,293,943,920
148
+
149
+La única cosa que vale la pena mencionar es la sección del `token` (que es la que nos da cuando se crea el robot) y el `group`, que es ID del grupo de `Telegram`.
150
+
151
+No hay manera fácil de ver el ID desde `Telegram`, por lo que se puede utilizar el programa llamado `seeIdGroups.py`. Para ejecutarlo sólo es necesario establecer el parámetro `token` del archivo de configuración. Necesitarás que alguien invite al bot al grupo. Además, las personas de ese grupo deben enviar algunos mensajes, para que el programa pueda coger su ID. Puede llevar unos segundos el que aparezcan los mensajes. Cuando se tenga el ID de grupo que se quiere, sólo hay que pulsar Ctrl-c, copiarlo en el archivo de configuración (incluido el simbolo menos), y la configuración estará terminada.
152
+
153
+### Uso<a id="orgheadline10"></a>
154
+
155
+Se pueden crear todos los archivos de configuración que se deseen. Sólo tendrás que pasarlo como parámetro al programa,  si no se hace se intentará coger el archivo `config.ini` por defecto, y se producirá un error si no existe:
156
+
157
+    # Es recomendable utilizar tmux o la pantalla para ejecutar la siguiente orden
158
+    $ Jabbergram.py example.ini
159
+
160
+### Licencia<a id="orgheadline11"></a>
161
+
162
+    This program is free software: you can redistribute it and / or modify
163
+    it under the terms of the GNU General Public License as published by
164
+    the Free Software Foundation, Either version 3 of the License, or
165
+    (At your option) any later version.
166
+
167
+    This program is distributed in the hope That it will be useful,
168
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
169
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
170
+    GNU General Public License for more details.
171
+
172
+    You should have received a copy of the GNU General Public License
173
+    Along With This Program. If not, see <http://www.gnu.org/licenses/>.

+ 141
- 0
README.org Прегледај датотеку

@@ -0,0 +1,141 @@
1
+* jabbergram
2
+** English
3
+*** About
4
+    With this program, it's possible to use a MuC =XMPP= room to talk to a group on =Telegram= and vice versa. The aim of this program is to be just a simple gateway, just pass text from one way to the other. Once it's stable, it probably won't have more improvements, since I don't need them.
5
+*** Installation
6
+    As with any program that uses python, it should be used a virtual environment (virtualenv), but that is user selectable. It's possible to use one of the next installation methods:
7
+
8
+     Install via pip:
9
+     #+BEGIN_SRC sh
10
+       $ su -c "pip3 install jabbergram"
11
+     #+END_SRC
12
+
13
+     Clone the repository:
14
+     #+BEGIN_SRC sh
15
+       $ git clone git://daemons.cf/jabbergram
16
+       $ cd jabbergram
17
+       $ su -c "pip3 install -r requirements.txt"
18
+       $ su -c "python3 setup.py install"
19
+     #+END_SRC
20
+*** Configuration
21
+    This program is simple, it even doesn't have a =help= menu. First thing you need to do is to create =Telegram= Bot. To do so, you must have a telegram account and talk to [[https://telegram.me/botfather][BotFather]]. Then, execute:
22
+
23
+    #+BEGIN_SRC sh
24
+      /start
25
+      /newbot
26
+      YourNameBot # ended in bot, always
27
+      # then it will show your bot token, save it
28
+      /setprivacy
29
+      YourNameBot
30
+      # now press Disable
31
+    #+END_SRC
32
+
33
+    The =/setprivacy= option is to make the bot read all what it's said to him, not only when using commands. It's necessary to make =jabbergram= work. More info on creating =Telegram= bots at their [[https://core.telegram.org/bots][webpage]].
34
+
35
+    Then, you will have to create a config file. We'll call it =config.ini=. In that file, enter the next parameters:
36
+
37
+    #+BEGIN_SRC text
38
+      [config]
39
+      jid = exampleJid@nope.org
40
+      password = difficultPassword
41
+      muc_room = exampleMuc@muc.nope.org
42
+      nick = jabbergram
43
+      token = jabbergramBotTokken
44
+      group = -10293943920
45
+    #+END_SRC
46
+
47
+    The only thing worth mentioning is the =token= section, which is said to you when creating the bot, and the =group=, that is the =Telegram= group ID.
48
+
49
+    There's no easy way to see this from telegram, so you can use the separate utility called =seeIdGroups.py=. To execute it, you only need to set the =token= parameter in the config file. You will need that somebody invite the bot to the group. Also, people on that group must send some messages, so the utility can grab it's id. It may take a couple. When you have the group ID you want, just press Ctrl-c, copy it to the config file (even the minus symbol), and the configuration will be done.
50
+*** Usage
51
+    You can create all config files you want. You will only need to pass it as parameter, but if you don't it will try to grab =config.ini= by default, and it will fail if it doesn't exist:
52
+
53
+    #+BEGIN_SRC sh
54
+      # it's advisable to use tmux or screen to execute the next order
55
+      $ jabbergram.py example.ini
56
+    #+END_SRC
57
+*** License
58
+    #+BEGIN_SRC text
59
+      This program is free software: you can redistribute it and / or modify
60
+      it under the terms of the GNU General Public License as published by
61
+      the Free Software Foundation, Either version 3 of the License, or
62
+      (At your option) any later version.
63
+
64
+      This program is distributed in the hope That it will be useful,
65
+      but WITHOUT ANY WARRANTY; without even the implied warranty of
66
+      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67
+      GNU General Public License for more details.
68
+
69
+      You should have received a copy of the GNU General Public License
70
+      Along With This Program. If not, see <http://www.gnu.org/licenses/>.
71
+    #+END_SRC
72
+** Castellano
73
+*** Acerca de
74
+    Con este programa es posible utilizar una sala =XMPP= para hablar con un grupo de =Telegram= y viceversa. El objetivo de este programa es el de ser sólo una pasarela sencilla, sólo tiene que pasar el texto de un lado al otro. Una vez que sea estable, probablemente no tendrá más mejoras, ya que yo no las necesito.
75
+*** Instalación
76
+    Como con cualquier programa escrito en =Python=, deberia ser usado en un entorno virtual (virtualenv), pero eso queda a la elección del usuario. Es posible utilizar uno de los siguientes métodos de instalación:
77
+
78
+     Instalar a través de =pip=:
79
+     #+BEGIN_SRC sh
80
+       $ su -c "pip3 instalar jabbergram"
81
+     #+END_SRC
82
+
83
+     Clonar el repositorio:
84
+     #+BEGIN_SRC sh
85
+       $ git clone git://daemons.cf/jabbergram
86
+       $ cd jabbergram
87
+       $ su -c "pip3 instalar requirements.txt -r"
88
+       $ su -c "python3 setup.py instalar"
89
+     #+END_SRC
90
+*** Configuración
91
+    Este programa es simple, no tiene ni un menú de =ayuda=. Lo primero que hay que hacer es crear el bot de =Telegrama=. Para ello, hay que tener una cuenta de =Telegram= y hablar con [[https://telegram.me/botfather][BotFather]]. A continuación, ejecuta:
92
+
93
+    #+BEGIN_SRC sh
94
+      /start
95
+      /newbot
96
+      NombreDelBot # terminado en bot, siempre
97
+      # A continuación, se mostrará el token del bot, hay que guardarlo
98
+      /setprivacy
99
+      NombreDelBot
100
+      # Ahora hay que pulsar desactivar
101
+    #+END_SRC
102
+
103
+    La opción =/setprivacy= es para hacer que el robot pueda leer todo lo que se dice en el grupo, no sólo cuando se utilizan los comandos. Es necesario para hacer que =jabbergram= funcione. Más información sobre la creación los bots de =Telegrama= en su [[https://core.telegram.org/bots][página web]].
104
+
105
+    A continuación, hay que crear un archivo de configuración, que llamaremos =config.ini=. En ese archivo, introduce los siguientes parámetros:
106
+
107
+    #+BEGIN_SRC text
108
+      [Config]
109
+      JID = exampleJid@nope.org
110
+      password = difficultPassword
111
+      muc_room = exampleMuc@muc.nope.org
112
+      nick = jabbergram
113
+      token = jabbergramBotTokken
114
+      group = -10,293,943,920
115
+    #+END_SRC
116
+
117
+    La única cosa que vale la pena mencionar es la sección del =token= (que es la que nos da cuando se crea el robot) y el =group=, que es ID del grupo de =Telegram=.
118
+
119
+    No hay manera fácil de ver el ID desde =Telegram=, por lo que se puede utilizar el programa llamado =seeIdGroups.py=. Para ejecutarlo sólo es necesario establecer el parámetro =token= del archivo de configuración. Necesitarás que alguien invite al bot al grupo. Además, las personas de ese grupo deben enviar algunos mensajes, para que el programa pueda coger su ID. Puede llevar unos segundos el que aparezcan los mensajes. Cuando se tenga el ID de grupo que se quiere, sólo hay que pulsar Ctrl-c, copiarlo en el archivo de configuración (incluido el simbolo menos), y la configuración estará terminada.
120
+*** Uso
121
+    Se pueden crear todos los archivos de configuración que se deseen. Sólo tendrás que pasarlo como parámetro al programa,  si no se hace se intentará coger el archivo =config.ini= por defecto, y se producirá un error si no existe:
122
+
123
+    #+BEGIN_SRC sh
124
+      # Es recomendable utilizar tmux o la pantalla para ejecutar la siguiente orden
125
+      $ jabbergram.py example.ini
126
+    #+END_SRC
127
+*** Licencia
128
+    #+BEGIN_SRC text
129
+      This program is free software: you can redistribute it and / or modify
130
+      it under the terms of the GNU General Public License as published by
131
+      the Free Software Foundation, Either version 3 of the License, or
132
+      (At your option) any later version.
133
+
134
+      This program is distributed in the hope That it will be useful,
135
+      but WITHOUT ANY WARRANTY; without even the implied warranty of
136
+      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
137
+      GNU General Public License for more details.
138
+
139
+      You should have received a copy of the GNU General Public License
140
+      Along With This Program. If not, see <http://www.gnu.org/licenses/>.
141
+    #+END_SRC

+ 250
- 0
README.rst Прегледај датотеку

@@ -0,0 +1,250 @@
1
+-  `jabbergram <#jabbergram>`__
2
+-  `English <#english>`__
3
+
4
+   -  `About <#about>`__
5
+   -  `Installation <#installation>`__
6
+   -  `Configuration <#configuration>`__
7
+   -  `Usage <#usage>`__
8
+   -  `License <#license>`__
9
+
10
+-  `Castellano <#castellano>`__
11
+
12
+   -  `Acerca de <#acerca-de>`__
13
+   -  `Instalación <#instalación>`__
14
+   -  `Configuración <#configuración>`__
15
+   -  `Uso <#uso>`__
16
+   -  `Licencia <#licencia>`__
17
+
18
+jabbergram
19
+==========
20
+
21
+English
22
+-------
23
+
24
+About
25
+~~~~~
26
+
27
+With this program, it's possible to use a MuC ``XMPP`` room to talk to a
28
+group on ``Telegram`` and vice versa. The aim of this program is to be
29
+just a simple gateway, just pass text from one way to the other. Once
30
+it's stable, it probably won't have more improvements, since I don't
31
+need them.
32
+
33
+Installation
34
+~~~~~~~~~~~~
35
+
36
+As with any program that uses python, it should be used a virtual
37
+environment (virtualenv), but that is user selectable. It's possible to
38
+use one of the next installation methods:
39
+
40
+Install via pip:
41
+
42
+::
43
+
44
+    $ su -c "pip3 install jabbergram"
45
+
46
+Clone the repository:
47
+
48
+::
49
+
50
+    $ git clone git://daemons.cf/jabbergram
51
+    $ cd jabbergram
52
+    $ su -c "pip3 install -r requirements.txt"
53
+    $ su -c "python3 setup.py install"
54
+
55
+Configuration
56
+~~~~~~~~~~~~~
57
+
58
+This program is simple, it even doesn't have a ``help`` menu. First
59
+thing you need to do is to create ``Telegram`` Bot. To do so, you must
60
+have a telegram account and talk to
61
+`BotFather <https://telegram.me/botfather>`__. Then, execute:
62
+
63
+::
64
+
65
+    /start
66
+    /newbot
67
+    YourNameBot # ended in bot, always
68
+    # then it will show your bot token, save it
69
+    /setprivacy
70
+    YourNameBot
71
+    # now press Disable
72
+
73
+The ``/setprivacy`` option is to make the bot read all what it's said to
74
+him, not only when using commands. It's necessary to make ``jabbergram``
75
+work. More info on creating ``Telegram`` bots at their
76
+`webpage <https://core.telegram.org/bots>`__.
77
+
78
+Then, you will have to create a config file. We'll call it
79
+``config.ini``. In that file, enter the next parameters:
80
+
81
+::
82
+
83
+    [config]
84
+    jid = exampleJid@nope.org
85
+    password = difficultPassword
86
+    muc_room = exampleMuc@muc.nope.org
87
+    nick = jabbergram
88
+    token = jabbergramBotTokken
89
+    group = -10293943920
90
+
91
+The only thing worth mentioning is the ``token`` section, which is said
92
+to you when creating the bot, and the ``group``, that is the
93
+``Telegram`` group ID.
94
+
95
+There's no easy way to see this from telegram, so you can use the
96
+separate utility called ``seeIdGroups.py``. To execute it, you only need
97
+to set the ``token`` parameter in the config file. You will need that
98
+somebody invite the bot to the group. Also, people on that group must
99
+send some messages, so the utility can grab it's id. It may take a
100
+couple. When you have the group ID you want, just press Ctrl-c, copy it
101
+to the config file (even the minus symbol), and the configuration will
102
+be done.
103
+
104
+Usage
105
+~~~~~
106
+
107
+You can create all config files you want. You will only need to pass it
108
+as parameter, but if you don't it will try to grab ``config.ini`` by
109
+default, and it will fail if it doesn't exist:
110
+
111
+::
112
+
113
+    # it's advisable to use tmux or screen to execute the next order
114
+    $ jabbergram.py example.ini
115
+
116
+License
117
+~~~~~~~
118
+
119
+::
120
+
121
+    This program is free software: you can redistribute it and / or modify
122
+    it under the terms of the GNU General Public License as published by
123
+    the Free Software Foundation, Either version 3 of the License, or
124
+    (At your option) any later version.
125
+
126
+    This program is distributed in the hope That it will be useful,
127
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
128
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
129
+    GNU General Public License for more details.
130
+
131
+    You should have received a copy of the GNU General Public License
132
+    Along With This Program. If not, see <http://www.gnu.org/licenses/>.
133
+
134
+Castellano
135
+----------
136
+
137
+Acerca de
138
+~~~~~~~~~
139
+
140
+Con este programa, es posible utilizar una sala ``XMPP`` para hablar con
141
+un grupo de ``Telegram`` y viceversa. El objetivo de este programa es el
142
+de ser sólo una pasarela sencilla, sólo tiene que pasar el texto de un
143
+lado al otro. Una vez que sea estable, probablemente no tendrá más
144
+mejoras, ya que yo no las necesito.
145
+
146
+Instalación
147
+~~~~~~~~~~~
148
+
149
+Como con cualquier programa escrito en ``Python``, deberia ser usado en
150
+un entorno virtual (virtualenv), pero eso queda a la elección del
151
+usuario. Es posible utilizar uno de los siguientes métodos de
152
+instalación:
153
+
154
+Instalar a través de ``pip``:
155
+
156
+::
157
+
158
+    $ su -c "pip3 instalar jabbergram"
159
+
160
+Clonar el repositorio:
161
+
162
+::
163
+
164
+    $ git clone git: //daemons.cf/jabbergram
165
+    $ cd jabbergram
166
+    $ su -c "pip3 instalar requirements.txt -r"
167
+    $ su -c "python3 setup.py instalar"
168
+
169
+Configuración
170
+~~~~~~~~~~~~~
171
+
172
+Este programa es simple, no tiene ni un menú de ``ayuda``. Lo primero
173
+que hay que hacer es crear el bot de ``Telegrama``. Para ello, hay que
174
+tener una cuenta de ``Telegram`` y hablar con
175
+`BotFather <https://telegram.me/botfather>`__. A continuación, ejecuta:
176
+
177
+::
178
+
179
+    /comienzo
180
+    /newbot
181
+    NombreDelBot # terminado en bot, siempre
182
+    # A continuación, se mostrará el token del bot, hay que guardarlo
183
+    /setprivacy
184
+    NombreDelBot
185
+    # Ahora hay que pulsar desactivar
186
+
187
+La opción ``/setprivacy`` es para hacer que el robot pueda leer todo lo
188
+que se dice en el grupo, no sólo cuando se utilizan los comandos. Es
189
+necesario para hacer que ``jabbergram`` funcione. Más información sobre
190
+la creación los bots de ``Telegrama`` en su `página
191
+web <https://core.telegram.org/bots>`__.
192
+
193
+A continuación, hay que crear un archivo de configuración, que
194
+llamaremos ``config.ini``. En ese archivo, introduce los siguientes
195
+parámetros:
196
+
197
+::
198
+
199
+    [Config]
200
+    JID = exampleJid@nope.org
201
+    password = difficultPassword
202
+    muc_room = exampleMuc@muc.nope.org
203
+    nick = jabbergram
204
+    token = jabbergramBotTokken
205
+    group = -10,293,943,920
206
+
207
+La única cosa que vale la pena mencionar es la sección del ``token``
208
+(que es la que nos da cuando se crea el robot) y el ``group``, que es ID
209
+del grupo de ``Telegram``.
210
+
211
+No hay manera fácil de ver el ID desde ``Telegram``, por lo que se puede
212
+utilizar el programa llamado ``seeIdGroups.py``. Para ejecutarlo sólo es
213
+necesario establecer el parámetro ``token`` del archivo de
214
+configuración. Necesitarás que alguien invite al bot al grupo. Además,
215
+las personas de ese grupo deben enviar algunos mensajes, para que el
216
+programa pueda coger su ID. Puede llevar unos segundos el que aparezcan
217
+los mensajes. Cuando se tenga el ID de grupo que se quiere, sólo hay que
218
+pulsar Ctrl-c, copiarlo en el archivo de configuración (incluido el
219
+simbolo menos), y la configuración estará terminada.
220
+
221
+Uso
222
+~~~
223
+
224
+Se pueden crear todos los archivos de configuración que se deseen. Sólo
225
+tendrás que pasarlo como parámetro al programa, si no se hace se
226
+intentará coger el archivo ``config.ini`` por defecto, y se producirá un
227
+error si no existe:
228
+
229
+::
230
+
231
+    # Es recomendable utilizar tmux o la pantalla para ejecutar la siguiente orden
232
+    $ Jabbergram.py example.ini
233
+
234
+Licencia
235
+~~~~~~~~
236
+
237
+::
238
+
239
+    This program is free software: you can redistribute it and / or modify
240
+    it under the terms of the GNU General Public License as published by
241
+    the Free Software Foundation, Either version 3 of the License, or
242
+    (At your option) any later version.
243
+
244
+    This program is distributed in the hope That it will be useful,
245
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
246
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
247
+    GNU General Public License for more details.
248
+
249
+    You should have received a copy of the GNU General Public License
250
+    Along With This Program. If not, see <http://www.gnu.org/licenses/>.

+ 111
- 0
jabbergram.py Прегледај датотеку

@@ -0,0 +1,111 @@
1
+#!/usr/bin/env python3
2
+# -*- coding: utf-8 -*-
3
+
4
+import sleekxmpp
5
+import telegram
6
+import logging
7
+import configparser
8
+from threading import Thread
9
+from queue import Queue
10
+from telegram.error import NetworkError, Unauthorized
11
+from time import sleep
12
+from sys import argv
13
+
14
+
15
+class EchoBot(sleekxmpp.ClientXMPP):
16
+    def __init__(self, jid, password, room, nick, token, group):
17
+        # XMPP
18
+        super(EchoBot, self).__init__(jid, password)
19
+        self.add_event_handler('session_start', self.start)
20
+        self.add_event_handler('groupchat_message', self.muc_message)
21
+        self.muc_room = room
22
+        self.nick = nick
23
+        self.token = token
24
+
25
+        # Telegram
26
+        self.group = group
27
+        self.bot = telegram.Bot(self.token)
28
+
29
+        # meter el conecto del tg en un hilo
30
+        t = Thread(target=self.read_tg)
31
+        t.daemon = True
32
+        t.start()
33
+
34
+        # activar logueo basico
35
+        logging.basicConfig(
36
+            format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
37
+            level=logging.INFO)
38
+
39
+        logger = logging.getLogger(__name__)
40
+
41
+    def read_tg(self):
42
+        update_id = 0
43
+
44
+        while True:
45
+            try:
46
+                for update in self.bot.getUpdates(offset=update_id,
47
+                                                      timeout=10):
48
+                    update_id = update.update_id + 1
49
+                    message = update.message.text
50
+                    user = str(update.message.from_user.username)
51
+                    if not user:
52
+                        user = str(update.message.from_user.first_name)
53
+                    if not user:
54
+                        user = "Unidentified: "
55
+                    mensaje = user + ": " + message
56
+                    chat_id = update.message.chat_id
57
+
58
+                    if message and chat_id == self.group:
59
+                        self.send_message(mto=self.muc_room,
60
+                                              mbody=mensaje,
61
+                                              mtype='groupchat')
62
+            except NetworkError:
63
+                sleep(1)
64
+            except Unauthorized:
65
+                update_id += 1
66
+
67
+    def start(self, event):
68
+        self.get_roster()
69
+        self.send_presence()
70
+        self.plugin['xep_0045'].joinMUC(self.muc_room, self.nick, wait=True)
71
+
72
+    def muc_message(self, msg):
73
+        print(msg)
74
+        if msg['mucnick'] != self.nick:
75
+            mensaje = str(msg['from']).split('/')[1] + ': ' + str(msg['body'])
76
+            print(mensaje)
77
+            self.bot.sendMessage(self.group, text=mensaje)
78
+            print("fuera")
79
+
80
+if __name__ == '__main__':
81
+
82
+    # parsear config
83
+    config = []
84
+    parser = configparser.SafeConfigParser()
85
+
86
+    if len(argv) == 2:
87
+        parser.read(argv[1])
88
+    else:
89
+        parser.read('config.ini')
90
+
91
+    for name, value in parser.items('config'):
92
+        config.append(value)
93
+
94
+    # asignar valores para el bot
95
+    jid = config[0]
96
+    password = config[1]
97
+    muc_room = config[2]
98
+    nick = config[3]
99
+    token = config[4]
100
+    group = int(config[5])
101
+
102
+    xmpp = EchoBot(jid, password, muc_room, nick, token, group)
103
+    xmpp.register_plugin('xep_0045')
104
+
105
+    if xmpp.connect():
106
+        xmpp.process(block=True)
107
+        print("Done")
108
+    else:
109
+        print("Unable to connect.")
110
+
111
+    # Vols un gram nen?

+ 2
- 0
requirements.txt Прегледај датотеку

@@ -0,0 +1,2 @@
1
+sleekxmpp >= 1.3.1
2
+python-telegram-bot >= 4.0.3

+ 42
- 0
seeIdGroups.py Прегледај датотеку

@@ -0,0 +1,42 @@
1
+#!/usr/bin/env python3
2
+# -*- coding: utf-8 -*-
3
+
4
+import telegram
5
+import configparser
6
+from telegram.error import NetworkError, Unauthorized
7
+from time import sleep
8
+from sys import argv
9
+
10
+
11
+config = []
12
+parser = configparser.SafeConfigParser()
13
+
14
+if len(argv) == 2:
15
+    parser.read(argv[1])
16
+else:
17
+    parser.read('config.ini')
18
+
19
+for name, value in parser.items('config'):
20
+    config.append(value)
21
+
22
+bot = telegram.Bot(config[4])
23
+
24
+update_id = 0
25
+print('It can take a while to print the ID, please wait.')
26
+print("Press Ctrl-c when the ID you want is printed.")
27
+
28
+printed = []
29
+
30
+while True:
31
+    try:
32
+        for update in bot.getUpdates(offset=update_id, timeout=10):
33
+            chat_id = update.message.chat_id
34
+            chat_title = update.message
35
+            if chat_id not in printed:
36
+                printed.append(chat_id)
37
+                print("Title: " + str(chat_title['chat']['title']))
38
+                print("ID: " + str(chat_id))
39
+    except NetworkError:
40
+        sleep(1)
41
+    except Unauthorized:
42
+        update_id += 1

+ 29
- 0
setup.py Прегледај датотеку

@@ -0,0 +1,29 @@
1
+#!/usr/bin/env python3
2
+
3
+from setuptools import setup
4
+
5
+VERSION = '0.1'
6
+
7
+setup(name='jabbergram',
8
+      version=VERSION,
9
+      description='XMPP/Jabber - Telegram Gateway.',
10
+      long_description=open('README.rst', encoding='utf-8').read(),
11
+      author='drymer',
12
+      author_email='drymer@autistici.org',
13
+      url='http://daemons.cf/cgit/jabbergram/about/',
14
+      download_url='http://daemons.cf/cgit/jabbergram/snapshot/jabbergram-' + VERSION + '.tar.gz',
15
+      scripts=['jabbergram.py'],
16
+      license="GPLv3",
17
+      install_requires=[
18
+          "sleekxmpp>=1.3.1",
19
+          "python-telegram-bot>=4.0.3",
20
+          ],
21
+      classifiers=["Development Status :: 4 - Beta",
22
+                   "Programming Language :: Python",
23
+                   "Programming Language :: Python :: 3",
24
+                   "Programming Language :: Python :: 3.4",
25
+                   "Programming Language :: Python :: 3.5",
26
+                   "Operating System :: OS Independent",
27
+                   "Operating System :: POSIX",
28
+                   "Intended Audience :: End Users/Desktop"]
29
+      )

Loading…
Откажи
Сачувај