[Rio-pm] Tk travando, devo usar threads?

Aureliano Guedes guedes_1000 em hotmail.com
Sexta Julho 6 22:38:08 PDT 2012


Entendi, mas o que acontece é o seguinte, as paginas do vbshout.php apesar de não terem o SECURITYTOKEN elas precisam dele, então acredito que há alguma verificação nos cookies, tanto que que se não estiver logado o que verei nessa pagina http://www.forum-invaders.com.br/vb/vbshout.php?type=activeusers&do=ajax&action=fetch&instanceid=2 será isso:
{"ajax":"fetch","content":"There are currently no users chatting.","activeusers":"0"}

e não isso:

{"ajax":"fetch","pmtime":"1341447909","aoptimes":{"0":{"aoptime":"1341639256","tabid":"shouts","nosound":"1"}},"sticky":"Cuidado ao abrir links postados no shoutbox :: É proibido tirar dúvidas no shoutbox,para isso use o fórum","activeusers":"0","shouts":{"0":{"template":"shout","shoutid":"77968","instanceid":"2","message_raw":"vou ali voltar a ler o pdf da intel. auz!","canedit":"","time":"[Ontem 23:21]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"vou ali voltar a ler o pdf da intel. auz!","pmuser":"","altclass":"alt1"},"1":{"template":"shout","shoutid":"77967","instanceid":"2","message_raw":"man 9 min sem refrão pqp o.0","canedit":"","time":"[Ontem 23:20]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"man 9 min sem refrão pqp o.0","pmuser":"","altclass":"alt1"},"2":{"template":"shout","shoutid":"77966","instanceid":"2","message_raw":"Faroeste Caboclo é tão clássico","canedit":"","time":"[Ontem 23:20]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"Faroeste Caboclo é tão clássico","pmuser":"","altclass":"alt1"},"3":{"template":"shout","shoutid":"77965","instanceid":"2","message_raw":"WTFFFFFFFFFFFF","canedit":"","time":"[Ontem 23:19]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"WTFFFFFFFFFFFF","pmuser":"","altclass":"alt1"},"4":{"template":"shout","shoutid":"77964","instanceid":"2","message_raw":"como não?????????????","canedit":"","time":"[Ontem 23:19]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"como não?????????????","pmuser":"","altclass":"alt1"},"5":{"template":"shout","shoutid":"77963","instanceid":"2","message_raw":"pqp","canedit":"","time":"[Ontem 23:19]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"pqp","pmuser":"","altclass":"alt1"},"6":{"template":"shout","shoutid":"77962","instanceid":"2","message_raw":"o gráfico é legal, mas curti a música não .-.","canedit":"","time":"[Ontem 23:19]","musername":"kaao1001","memberaction_dropdown":"<a href=\"member.php/161644-kaao1001\" target=\"_blank\">kaao1001</a>","styleprops":"font-weight:bold; font-family:Tahoma; color:rgb(72, 61, 139);","message":"o gráfico é legal, mas curti a música não .-.","pmuser":"","altclass":"alt1"},"7":{"template":"shout","shoutid":"77961","instanceid":"2","message_raw":"Vou ver aí ^^","canedit":"","time":"[Ontem 23:16]","musername":"kaao1001","memberaction_dropdown":"<a href=\"member.php/161644-kaao1001\" target=\"_blank\">kaao1001</a>","styleprops":"font-weight:bold; font-family:Tahoma; color:rgb(72, 61, 139);","message":"Vou ver aí ^^","pmuser":"","altclass":"alt1"},"8":{"template":"shout","shoutid":"77960","instanceid":"2","message_raw":"Quem puder da um suporte... http://www.forum-invaders.com.br/vb/showthread.php/41346-D%C3%BAvida-Split-apenas-no-primeiro?goto=newpost","canedit":"","time":"[Ontem 23:16]","musername":"kaao1001","memberaction_dropdown":"<a href=\"member.php/161644-kaao1001\" target=\"_blank\">kaao1001</a>","styleprops":"font-weight:bold; font-family:Tahoma; color:rgb(72, 61, 139);","message":"Quem puder da um suporte... <a href=\"http://www.forum-invaders.com.br/vb/showthread.php/41346-D%C3%BAvida-Split-apenas-no-primeiro?goto=newpost\" target=\"_blank\">http://www.forum-invaders.com.br/vb/...o?goto=newpost</a>","pmuser":"","altclass":"alt1"},"9":{"template":"shout","shoutid":"77959","instanceid":"2","message_raw":"É uma humilhação chamar funk de "música" quando você se depara com algo assim...","canedit":"","time":"[Ontem 23:08]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"É uma humilhação chamar funk de "música" quando você se depara com algo assim...","pmuser":"","altclass":"alt1"},"10":{"template":"shout","shoutid":"77958","instanceid":"2","message_raw":"=D http://www.youtube.com/watch?v=WgKExOneYqs","canedit":"","time":"[Ontem 23:00]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"=D <a href=\"http://www.youtube.com/watch?v=WgKExOneYqs\" target=\"_blank\" rel=\"nofollow\">http://www.youtube.com/watch?v=WgKExOneYqs</a>","pmuser":"","altclass":"alt1"},"11":{"template":"shout","shoutid":"77957","instanceid":"2","message_raw":"kaao tu le The Breaker?","canedit":"","time":"[Ontem 22:46]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"kaao tu le The Breaker?","pmuser":"","altclass":"alt1"},"12":{"template":"shout","shoutid":"77956","instanceid":"2","message_raw":"ai gente ALGUEM TEM um tutorial do net tools 5 prame passa nao sei todos os comandos posiveis","canedit":"","time":"[Ontem 21:39]","musername":"pR1Mo","memberaction_dropdown":"<a href=\"member.php/163134-pR1Mo\" target=\"_blank\">pR1Mo</a>","styleprops":"font-family:Arial;","message":"ai gente ALGUEM TEM um tutorial do net tools 5 prame passa nao sei todos os comandos posiveis","pmuser":"","altclass":"alt1"},"13":{"template":"shout","shoutid":"77955","instanceid":"2","message_raw":"algum perlzista na área? \\Õ/","canedit":"","time":"[Ontem 21:17]","musername":"kaao1001","memberaction_dropdown":"<a href=\"member.php/161644-kaao1001\" target=\"_blank\">kaao1001</a>","styleprops":"font-weight:bold; font-family:Tahoma; color:rgb(72, 61, 139);","message":"algum perlzista na área? \\Õ/","pmuser":"","altclass":"alt1"},"14":{"template":"shout","shoutid":"77954","instanceid":"2","message_raw":"aew","canedit":"","time":"[Ontem 21:17]","musername":"kaao1001","memberaction_dropdown":"<a href=\"member.php/161644-kaao1001\" target=\"_blank\">kaao1001</a>","styleprops":"font-weight:bold; font-family:Tahoma; color:rgb(72, 61, 139);","message":"aew","pmuser":"","altclass":"alt1"},"15":{"template":"shout","shoutid":"77953","instanceid":"2","message_raw":"boa noite a todos","canedit":"","time":"[Ontem 19:29]","musername":"_-Blayd.Anonymous-_","memberaction_dropdown":"<a href=\"member.php/162995-_-Blayd-Anonymous-_\" target=\"_blank\">_-Blayd.Anonymous-_</a>","styleprops":"font-family:Tahoma; color:#4169e1;","message":"boa noite a todos","pmuser":"","altclass":"alt1"},"16":{"template":"shout","shoutid":"77952","instanceid":"2","message_raw":"http://a4.sphotos.ak.fbcdn.net/hphotos-ak-snc6/c34.0.403.403/p403x403/166054_251062751672555_962157331_n.jpg","canedit":"","time":"[Ontem 18:57]","musername":"<span style='COLOR:green;font-weight:bold'>_Guga_</span></font>","memberaction_dropdown":"<a href=\"member.php/21716-_Guga_\" target=\"_blank\"><span style='COLOR:green;font-weight:bold'>_Guga_</span></font></a>","styleprops":"font-family:Verdana; color:rgb(255, 0, 255);","message":"<a href=\"http://a4.sphotos.ak.fbcdn.net/hphotos-ak-snc6/c34.0.403.403/p403x403/166054_251062751672555_962157331_n.jpg\" target=\"_blank\" rel=\"nofollow\">http://a4.sphotos.ak.fbcdn.net/hphot...62157331_n.jpg</a>","pmuser":"","altclass":"alt1"},"17":{"template":"shout","shoutid":"77951","instanceid":"2","message_raw":"Mas jaja ferias, ai da pra agiliza lgl","canedit":"","time":"[Ontem 18:03]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"Mas jaja ferias, ai da pra agiliza lgl","pmuser":"","altclass":"alt1"},"18":{"template":"shout","shoutid":"77950","instanceid":"2","message_raw":"Acp este weekend nem vai da pra entrar no pc, simulado sab e dom","canedit":"","time":"[Ontem 18:02]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"Acp este weekend nem vai da pra entrar no pc, simulado sab e dom","pmuser":"","altclass":"alt1"},"19":{"template":"shout","shoutid":"77949","instanceid":"2","message_raw":"3g lixoso...","canedit":"","time":"[Ontem 18:02]","musername":"N3ro!","memberaction_dropdown":"<a href=\"member.php/162553-N3ro%21\" target=\"_blank\">N3ro!</a>","styleprops":"font-family:Century Gothic; color:rgb(0, 100, 0);","message":"3g lixoso...","pmuser":"","altclass":"alt1"}},"content":"There are currently no users chatting."}
E para enviar mensagem eu tenho que fazer um post que inclue o SECURITYTOKEN, apesar de que eu envio mensagem sem necessidade de usar cookies.
Mas estou trabalhando e melhorias no Shoutbox.pm antes de melhorar a interface.

From: bruno.buss em gmail.com
Date: Fri, 6 Jul 2012 19:06:01 -0300
To: rio-pm em pm.org
Subject: Re: [Rio-pm] Tk travando, devo usar threads?

2012/7/6 Aureliano Guedes <guedes_1000 em hotmail.com>






3) Veja bem que você está assumindo, que toda página contem esse SECURITYTOKEN, independente do que você fez por último com o seu $url... infelizmente a maneira como seu código está, não é nem um pouco "side-effect free", logo acho que você não deveria contar com isso...



Se por algum problema, ele não encontrar nada (eg. nem toda página do forum tem esse SECURITYTOKEN ou então por algum motivo a última requisição falhou ou não retornou esse token), o que terá na variável $1 e consequentemente na sua variável $token?


R: Toda pagina tem o "SECURITYTOKEN" já que para fazer qualquer ação preciso dele para gerar a permição, caso não haja login o SECURITYTOKEN é "guest".


Agora que você respondeu com tanta certeza, posso te mostrar que você está errado =PNem sempre o content do $url no seu Shoutbox.pm terá um security token. Quer um exemplo?
Suponha que você chame get_msg, então o content dele será o que ele retornar de http://www.forum-invaders.com.br/vb/vbshout.php?type=activeusers&do=ajax&action=fetch&instanceid=2, aqui no caso ele retornou o seguinte:


{"ajax":"fetch","content":"There are currently no users chatting.","activeusers":"0"}
Se logo depois você chamar o send_msg, o conteúdo de $url será esse daí (já que não foi realizado nenhum outro post/get) e não terá "SECURITYTOKEN" nenhum ;)

Não só isso, esse conteúdo também não contém nenhum "Bem-vindo", o que faz com que seu regex não faça matching e você não submeta a mensagem ;)

Por isso que disse, seu código tem altas dependências de "side-effects"... o que acontece numa função, não depende só dela, mas sim da sequência de chamadas anteriores que antecederam ela. Isso além de ser uma coisa feia, atrapalha você a debuggar e a escrever testes para seu programa :)


[ ]'s-- 
Bruno C. Buss
http://www.brunobuss.net


_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120707/10e9a046/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm