Browse Source

Fix the "answer" option and some minor things

drymer 2 years ago
parent
commit
9e4e5d3852
3 changed files with 24 additions and 28 deletions
  1. 1
    1
      README.md
  2. 1
    1
      README.org
  3. 22
    26
      jabbergram.py

+ 1
- 1
README.md View File

@@ -145,7 +145,7 @@ Este programa es simple, no tiene ni un menú de `ayuda`. Lo primero que hay que
145 145
     NombreDelBot
146 146
     # Ahora hay que pulsar desactivar
147 147
 
148
-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).
148
+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 `Telegram` en su [página web](https://core.telegram.org/bots).
149 149
 
150 150
 A continuación, hay que crear un archivo de configuración, que llamaremos `config.ini`. En ese archivo, introduce los siguientes parámetros:
151 151
 

+ 1
- 1
README.org View File

@@ -111,7 +111,7 @@
111 111
       # Ahora hay que pulsar desactivar
112 112
     #+END_SRC
113 113
 
114
-    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]].
114
+    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 =Telegram= en su [[https://core.telegram.org/bots][página web]].
115 115
 
116 116
     A continuación, hay que crear un archivo de configuración, que llamaremos =config.ini=. En ese archivo, introduce los siguientes parámetros:
117 117
 

+ 22
- 26
jabbergram.py View File

@@ -49,7 +49,6 @@ class Jabbergram(sleekxmpp.ClientXMPP):
49 49
         self.groups = groups.split()
50 50
         self.bot = telegram.Bot(self.token)
51 51
         self.telegram_users = {}
52
-        self.group_name = {}
53 52
 
54 53
         # initialize http upload on a thread since its needed to be connected
55 54
         # to xmpp
@@ -93,9 +92,20 @@ class Jabbergram(sleekxmpp.ClientXMPP):
93 92
                 for update in self.bot.getUpdates(offset=update_id,
94 93
                                                   timeout=10):
95 94
                     name = ''
95
+                    size = 0
96
+
97
+                    if update.message.from_user:
98
+                        user = str(update.message.from_user.username)
99
+
100
+                        # sometimes there's no user. weird, but it happens
101
+                        if not user:
102
+                            user = str(update.message.from_user.first_name)
103
+
104
+                        # even weirder is that username or first_name exists
105
+                        # let's take last_name
106
+                        if not user:
107
+                            user = str(update.message.from_user.last_name)
96 108
 
97
-                    if not self.group_name:
98
-                        self.group_name = update.message.chat.username
99 109
                     if update.message.audio or update.message.document or \
100 110
                        update.message.photo or update.message.video \
101 111
                        or update.message.voice or update.message.sticker:
@@ -121,7 +131,7 @@ class Jabbergram(sleekxmpp.ClientXMPP):
121 131
                                 d_file = update.message.voice
122 132
                                 ext = '.ogg'
123 133
                                 size = d_file.file_size
124
-                            if self.max_size >= size:
134
+                            if self.max_size >= int(size):
125 135
                                 t_file = self.bot.getFile(d_file.file_id)
126 136
                                 f_name = '/tmp/' + d_file.file_id + ext
127 137
                                 t_file.download(f_name)
@@ -139,7 +149,7 @@ class Jabbergram(sleekxmpp.ClientXMPP):
139 149
                                 message = 'A file has been uploaded to Telegr'\
140 150
                                           'am, but is too big.'
141 151
                         else:
142
-                            message = 'A file has been uploaderd to Telegram,'\
152
+                            message = 'A file has been uploaded to Telegram,'\
143 153
                                       'but the XMPP server doesn\'t support H'\
144 154
                                       'TTP Upload.'
145 155
 
@@ -161,29 +171,16 @@ class Jabbergram(sleekxmpp.ClientXMPP):
161 171
                                           update.message.reply_to_message.text
162 172
                             else:
163 173
                                 message = update.message.reply_to_message.text
164
-                            message = message + ' <- ' + name + ':' + update.\
165
-                                      message.text
166 174
                         else:
167 175
                             message = update.message.text
168 176
 
169
-                    user = str(update.message.from_user.username)
170
-
171
-                    # sometimes there's no user. weird, but it happens
172
-                    if not user:
173
-                        user = str(update.message.from_user.first_name)
174
-
175
-                    # even weirder is that username or first_name exists
176
-                    # let's take last_name
177
-                    if not user:
178
-                        user = str(update.message.from_user.last_name)
179
-
180
-                    # Don't add name first if it's a reply
181 177
                     if name:
182
-                        msg = message
178
+                        msg = message + ' <- ' + user + ": " + update.message.text
183 179
                     else:
184 180
                         msg = user + ": " + message
185 181
 
186 182
                     chat = '@' + update.message.chat.username
183
+
187 184
                     if chat not in self.groups:
188 185
                         chat = str(update.message.chat_id)
189 186
 
@@ -195,15 +192,14 @@ class Jabbergram(sleekxmpp.ClientXMPP):
195 192
                             if user not in self.telegram_users[chat]:
196 193
                                 self.telegram_users[chat] += ' ' + user
197 194
                         else:
198
-
199 195
                             self.telegram_users[chat] = ' ' + user
200 196
 
201 197
                         if message == '.users':
202
-                            self.say_users('telegram', muc, chat)
198
+                            self.say_users('telegram', receiver, chat)
203 199
                         elif message == '.help':
204
-                            self.say_help('telegram', muc, chat)
200
+                            self.say_help('telegram', receiver, chat)
205 201
                         elif message == '.where':
206
-                            self.say_where('telegram', muc, chat)
202
+                            self.say_where('telegram', receiver, chat)
207 203
                         else:
208 204
                             self.send_message(mto=receiver, mbody=msg,
209 205
                                               mtype='groupchat')
@@ -292,8 +288,8 @@ class Jabbergram(sleekxmpp.ClientXMPP):
292 288
 
293 289
     def say_where(self, service, muc, group):
294 290
         if service == 'xmpp':
295
-            if self.group_name:
296
-                msg = 'I\'m on http://telegram.me/' + self.group_name + '.'
291
+            if '@' in group:
292
+                msg = 'I\'m on http://telegram.me/' + group.split('@')[1] + '.'
297 293
             else:
298 294
                 msg = 'Sorry, I\'m on a private group, you\'ll have to ask fo'\
299 295
                       'r an invitation.'

Loading…
Cancel
Save