Sobre o bot em geral


Páginas (6): « Anterior 1 2 3 4 5 6 Próximo »
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
0 votos
75 respostas neste tópico
 #61
(20/04/2014, 12:11)Felps Escreveu: Nova versão do bot uplodeada e ativada.

thanks....
 #62
@Felps
nova versão...
chequei código again e não precisa de toordinal...
parece que isso que ta atrapalhando...

http://stackoverflow.com/questions/20365...-in-python

Código PHP:
# -*- coding: utf-8 -*-
import ch
import threading
time
from datetime import datetime
import feedparser

class TestBot(ch.RoomManager):

           def onInit(self):
                 self.setNameColor("464")
                 self.setFontColor("344")
                 self.setFontFace("1")
                 self.setFontSize(10)
                 self.enableBg()
                 self.enableRecording()

           def check(selfroom):
                 feed feedparser.parse('http://bakaforum.info/bakanewposts.php?type=atom1.0')
                 xml feed.entries[0]
                 lastupdated xml['updated']
                 lastupublished datetime.strptime(xml['published'], "%Y-%m-%dT%H:%M:%SZ")
                 lastlink xml['id']
                 time.sleep(2)
                 feed feedparser.parse('http://bakaforum.info/bakanewposts.php?type=atom1.0')
                 xml feed.entries[0]
                 xml2 feed.entries[1]
                 updated xml['updated']
                 published datetime.strptime(xml['published'], "%Y-%m-%dT%H:%M:%SZ")
                 author xml['author']
                 author2 xml2['author']
                 title xml['title']
                 title2 xml2['title']
                 link xml['id']
                 link2 xml2['id']
                 if(lastupublished<=published):
                     if(lastlink==link):
                       if(lastupdated==updated):
                             print "same"
                       else:
                             print author +' editou a mensagem'
                             mesg ' editou a mensagem no tópico '.decode("utf8")
                             room.message(author+mesg+title+' '+link                             
                     else
:
                       if(lastlink==link2):
                             print author +' postou a mensagem'
                             mesg ' postou no tópico '.decode("utf8")
                             room.message(author+mesg+title+' '+link)
                       else:
                             print author2 +' postou a mensagem'
                             mesg ' postou no tópico '.decode("utf8")
                             room.message(author2+mesg+title2+' '+link2)
                             print author +' postou a mensagem'
                             mesg ' postou no tópico '.decode("utf8")
                             room.message(author+mesg+title+' '+link)

           def onConnect(selfroom):
                 self.setInterval(0self.checkroom)
                 
testbot 
TestBot()
roomList = ["ugtforumanime"]
usePM False          

testbot
.easy_start(roomList"botbakachan""fe300194"
 #63
Já fiz upload e ativei a nova versão.
 #64
@Felps nova versão again...

agora detecta edição nos dois últimos posts e não apenas no último post

Código PHP:
# -*- coding: utf-8 -*-
import ch
import threading
time
from datetime import datetime
import feedparser

class TestBot(ch.RoomManager):

            
def onInit(self):
                  
self.setNameColor("464")
                  
self.setFontColor("344")
                  
self.setFontFace("1")
                  
self.setFontSize(10)
                  
self.enableBg()
                  
self.enableRecording()

            
def check(selfroom):
                  
feed feedparser.parse('http://bakaforum.info/bakanewposts.php?type=atom1.0')
                  
xml feed.entries[0]
                  
xml2 feed.entries[1]
                  
xml3 feed.entries[2]
                  
lastupdated xml['updated']
                  
lastupdated2 xml2['updated']
                  
lastupdated3 xml3['updated']
                  
lastpublished datetime.strptime(xml['published'], "%Y-%m-%dT%H:%M:%SZ")
                  
lastlink xml['id']
                  
time.sleep(2)
                  
feed feedparser.parse('http://bakaforum.info/bakanewposts.php?type=atom1.0')
                  
xml feed.entries[0]
                  
xml2 feed.entries[1]
                  
xml3 feed.entries[2]
                  
updated xml['updated']
                  
updated2 xml2['updated']
                  
updated3 xml3['updated']
                  
published datetime.strptime(xml['published'], "%Y-%m-%dT%H:%M:%SZ")
                  
author xml['author']
                  
author2 xml2['author']
                  
author3 xml3['author']
                  
title xml['title']
                  
title2 xml2['title']
                  
title3 xml3['title']
                  
link xml['id']
                  
link2 xml2['id']
                  
link3 xml3['id']
                  if(
lastpublished<=published):
                      if(
lastlink==link):
                          print 
'sem nova mensagem'
                          
if(lastupdated!=updated):
                              print 
author +' editou a mensagem'
                              
mesg ' editou a mensagem no tópico '.decode("utf8")
                              
room.message(author+mesg+title+' '+link
                          if(
lastupdated2!=updated2):
                              print 
author2 +' editou a mensagem'
                              
mesg ' editou a mensagem no tópico '.decode("utf8")
                              
room.message(author2+mesg+title2+' '+link2)
                          if(
lastupdated3!=updated3):
                              print 
author3 +' editou a mensagem'
                              
mesg ' editou a mensagem no tópico '.decode("utf8")
                              
room.message(author3+mesg+title3+' '+link3)                                  
                      else:
                        if(
lastlink==link2):
                              print 
author +' postou a mensagem'
                              
mesg ' postou no tópico '.decode("utf8")
                              
room.message(author+mesg+title+' '+link)
                              if(
lastupdated!=updated2):
                                  print 
author2 +' editou a mensagem'
                                  
mesg ' editou a mensagem no tópico '.decode("utf8")
                                  
room.message(author2+mesg+title2+' '+link2
                              if(
lastupdated2!=updated3):
                                  print 
author3 +' editou a mensagem'
                                  
mesg ' editou a mensagem no tópico '.decode("utf8")
                                  
room.message(author3+mesg+title3+' '+link3)                                                          
                        else:
                            if(
lastlink==link3):
                                print 
author2 +' postou a mensagem'
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(author2+mesg+title2+' '+link2)
                                print 
author +' postou a mensagem'
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(autor+mesg+title+' '+link)
                                if(
lastupdated!=updated3):
                                    print 
author3 +' editou a mensagem'
                                    
mesg ' editou a mensagem no tópico '.decode("utf8")
                                    
room.message(author3+mesg+title3+' '+link3)                                  
                            else:
                                print 
author3 +' postou a mensagem'
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(author3+mesg+title3+' '+link3)                                
                                print 
author2 +' postou a mensagem'
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(author2+mesg+title2+' '+link2)
                                print 
author +' postou a mensagem'
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(autor+mesg+title+' '+link)                                

            
def onConnect(selfroom):
                  
self.setInterval(0self.checkroom)
                  
testbot TestBot()
roomList = ["ugtforumanime"]
usePM False          

testbot
.easy_start(roomList"botbakachan""fe300194"

talvez essa ai seja última versão caso não tenha nenhum bug no código...
não tem mais nada a melhorar... alias não sobrou nada para poder acrescentar algo, já que feed limitei apenas 3 posts, então tudo que poderia extrair do feed vai extrair com código acima...
 #65
@martec, já mudei para a nova versão.
 #66
(21/04/2014, 09:51)Felps Escreveu: @martec, já mudei para a nova versão.

thanks...  Thumbup
 #67
ping! @Felps @rafael

seguinte to querendo ativar mais um bot para quando primeiro bot cair segundo bot entrar em ação...
mas não estou conseguindo...
o código seria algo como de baixo

Código PHP:
# -*- coding: utf-8 -*-
import ch
import threading
time
from datetime import datetime
import feedparser

class TestBot(ch.RoomManager):

    
def onInit(self):
                  
self.setNameColor("464")
                  
self.setFontColor("344")
                  
self.setFontFace("1")
                  
self.setFontSize(10)
                  
self.enableBg()
                  
self.enableRecording()

    
def check(roomself):
        if(
self.findUser('lol') == None):
                  
feed feedparser.parse('http://bakaforum.info/bakanewposts.php?type=atom1.0')
                  
xml feed.entries[0]
                  
xml2 feed.entries[1]
                  
xml3 feed.entries[2]
                  
lastupdated xml['updated']
                  
lastupdated2 xml2['updated']
                  
lastupdated3 xml3['updated']
                  
lastpublished datetime.strptime(xml['published'], "%Y-%m-%dT%H:%M:%SZ")
                  
lastlink xml['id']
                  
time.sleep(2)
                  
feedn feedparser.parse('http://bakaforum.info/bakanewposts.php?type=atom1.0')
                  
xmln feedn.entries[0]
                  
xmln2 feedn.entries[1]
                  
xmln3 feedn.entries[2]
                  
updated xmln['updated']
                  
updated2 xmln2['updated']
                  
updated3 xmln3['updated']
                  
published datetime.strptime(xmln['published'], "%Y-%m-%dT%H:%M:%SZ")
                  
author xmln['author']
                  
author2 xmln2['author']
                  
author3 xmln3['author']
                  
title xmln['title']
                  
title2 xmln2['title']
                  
title3 xmln3['title']
                  
link xmln['id']
                  
link2 xmln2['id']
                  
link3 xmln3['id']
                  if(
lastpublished<=published):
                      print 
'same'
                      
if(lastlink==link):
                          if(
lastupdated!=updated):
                              
mesg ' editou a mensagem no tópico '.decode("utf8")
                              
room.message(author+mesg+title+' '+link
                          if(
lastupdated2!=updated2):
                              
mesg ' editou a mensagem no tópico '.decode("utf8")
                              
room.message(author2+mesg+title2+' '+link2)
                          if(
lastupdated3!=updated3):
                              
mesg ' editou a mensagem no tópico '.decode("utf8")
                              
room.message(author3+mesg+title3+' '+link3)                                  
                      else:
                        if(
lastlink==link2):
                              
mesg ' postou no tópico '.decode("utf8")
                              
room.message(author+mesg+title+' '+link)
                              if(
lastupdated!=updated2):
                                  
mesg ' editou a mensagem no tópico '.decode("utf8")
                                  
room.message(author2+mesg+title2+' '+link2
                              if(
lastupdated2!=updated3):
                                  
mesg ' editou a mensagem no tópico '.decode("utf8")
                                  
room.message(author3+mesg+title3+' '+link3)                                                          
                        else:
                            if(
lastlink==link3):
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(author2+mesg+title2+' '+link2)
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(autor+mesg+title+' '+link)
                                if(
lastupdated!=updated3):
                                    
mesg ' editou a mensagem no tópico '.decode("utf8")
                                    
room.message(author3+mesg+title3+' '+link3)                                  
                            else:
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(author3+mesg+title3+' '+link3)                                
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(author2+mesg+title2+' '+link2)
                                
mesg ' postou no tópico '.decode("utf8")
                                
room.message(autor+mesg+title+' '+link)                 
            
    
def onConnect(selfroom):
                  
self.setInterval(2self.checkroom)
                  
testbot TestBot()
roomList = ["ugtforumanime"]
usePM False          

testbot
.easy_start(roomList"teste300194""fe300194"

para analisar se botbakachan está online ou não usei "if(self.findUser('lol') == None):"
no lugar de "lol" botar "botbakachan" vai detectar que botbakachan está online e não irá postar mesmo que tenha nova mensagem etc...
coloquei "lol" para poder testar... já que se botar "botbakachan" não irá postar nada e não iria servir como teste.

para que a função "findUser" funcione eu precisei alterar "def check(room, self):" para "def check(self, room):" (alterei a posição "self" e "room") ...

bem já devem ter imaginar que vai dar merda...
sim dá mesmo merda...

quando alguém posta dá seguinte erro

Código:
same
same
same
same
same
same
same

Traceback (most recent call last):
  File "C:\bakafrm\baka2.py", line 92, in <module>
    testbot.easy_start(roomList, "teste300194", "fe300194")
  File "C:\bakafrm\ch.py", line 1769, in easy_start
    self.main()
  File "C:\bakafrm\ch.py", line 1745, in main
    self._tick()
  File "C:\bakafrm\ch.py", line 1644, in _tick
    task.func(*task.args, **task.kw)
  File "C:\bakafrm\baka2.py", line 61, in check
    room.message(author+mesg+title+' '+link)
AttributeError: TestBot instance has no attribute 'message'

se puderem contornar isso ficarei grato...

tt
 #68
@martec, mas e se ambos caírem? Vamos ter que usar um bot para ver se o bot que verifica está funcionando? -q

Acho que o melhor mesmo é sempre ficarmos de olho. Se cair só precisamos reiniciar.
 #69
(24/04/2014, 11:03)Felps Escreveu: @martec, mas e se ambos caírem? Vamos ter que usar um bot para ver se o bot que verifica está funcionando? -q

Acho que o melhor mesmo é sempre ficarmos de olho. Se cair só precisamos reiniciar.

eles devem ter montes de servidores...
então muito difícil cair no mesmo server...
e não precisa ser necessariamente mais um bot...
pode ter bot2, bot3... ou seja mais de dois bots...

quer dizer, não acredito que todos vão cair ao mesmo tempo... quando um cair outro entra no lugar até alguém reiniciar o principal.
 #70
@Felps @rafael

sobre a questão do comando "!users" o código que está sendo usado é como consta abaixo...
se tem sugestão de melhoria ficarei grato... pq não sei oq pode ser...
talvez dando o status de mod para botnanamichan pode ser que ela consiga ler mais users de uma vez... mas sei lá... acho que não isso tbm...

Código PHP:
 def checkusers(roomself):
     return self.getUserlist()

 def onMessage(selfroomusermessage):
   if self.user == user: return
   if message.body[0] == "!":
     data message.body[1:].split(" "1)
     if len(data) > 1:
       cmdargs data[0], data[1]
     else:
       cmdargs data[0], ""

##COMMANDS!
#Setting up commands for yer bot

     if cmd == "users":
       mylist self.checkusers(room)
       userlist ', '.join(map(strmylist))
       room.message(userlist
 #71
(28/04/2014, 07:31)martec Escreveu: @Felps @rafael

sobre a questão do comando "!users" o código que está sendo usado é como consta abaixo...
se tem sugestão de melhoria ficarei grato... pq não sei oq pode ser...
talvez dando o status de mod para botnanamichan pode ser que ela consiga ler mais users de uma vez... mas sei lá... acho que não isso tbm...

Código PHP:
 def checkusers(roomself):
     return self.getUserlist()

 def onMessage(selfroomusermessage):
   if self.user == user: return
   if message.body[0] == "!":
     data message.body[1:].split(" "1)
     if len(data) > 1:
       cmdargs data[0], data[1]
     else:
       cmdargs data[0], ""

##COMMANDS!
#Setting up commands for yer bot

     if cmd == "users":
       mylist self.checkusers(room)
       userlist ', '.join(map(strmylist))
       room.message(userlist

Tem um comando, não lembro bem, acho que era room.alguma coisa, que removia a palavra selecionada entre aspas de uma certa string na variável. Infelizmente n tenho mais as versões antigas do bot...Bem, o que quero dizer é que poderíamos usá-la para tirar aqueles "<user:" e ">", fazendo com que fique mais limpo. Tmb seria uma boa você fazer ignorar os Bots e pegar só os usuários.
 #72
(28/04/2014, 09:58)Felps Escreveu: Tem um comando, não lembro bem, acho que era room.alguma coisa, que removia a palavra selecionada entre aspas de uma certa string na variável. Infelizmente n tenho mais as versões antigas do bot...Bem, o que quero dizer é que poderíamos usá-la para tirar aqueles "<user:" e ">", fazendo com que fique mais limpo. Tmb seria uma boa você fazer ignorar os Bots e pegar só os usuários.

bem infelizmente eu não manjo de "Parsing"
 #73
(28/04/2014, 10:03)martec Escreveu: bem infelizmente eu não manjo de "Parsing"

Eu fiz um script e isso deve resolver o problema: http://pastebin.com/tMduTsgw
 #74
(28/04/2014, 11:10)Rafael Escreveu: Eu fiz um script e isso deve resolver o problema: http://pastebin.com/tMduTsgw

vou testar...
 #75
ohhh o comando era replace kkk n tinha nada a ver com room.alguma coisa kk

Ei, mas porque você adicionou o martec, o JC, o Droko e o Amagami na lista?
Páginas (6): « Anterior 1 2 3 4 5 6 Próximo »
 

Usuários visualizando este tópico: 1 Visitantes