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

Bruno Buss bruno.buss em gmail.com
Sábado Julho 7 07:27:20 PDT 2012


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

>  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=2será isso:
>
> {"ajax":"fetch","content":"There are currently no users chatting.","activeusers":"0"}
>
> e não isso:
>
> {um monte de coisa}
>
>
Exato Aureliano, leia o que eu escrevi com calma...
O que eu disse fui justamente que esse {um monte de coisa} não contem nem o
SECURITYTOKEN, nem nenhum "Bem-vindo"... logo sua função send_msg está
*ERRADA*, pois ela espera que o $url esteja em um estado, porém em alguns
(vários?) casos ela não estará.

Além disso, esse "if($content =~ /Bem-vindo/gi)" não garante que você está
logado ou não... eu como guest consigo ver a página inicial do fórum com
isso.

Minha sugestão para o Shoutbox.pm:
1) Crie um método de login, e tire do "código global" do pacote Shoutbox.pm.
2) Crie um método para verificar se está logado, creio que fazendo do
método atual, verificando o SECURITYTOKEN, deve funcionar de boa.
3) Crie um construtor decente para sua classe usando uma sub BUILD [1]
(pessoal mais experiente com Moose, se eu estiver falando besteira me
corrija por favor). Nela você já pode tentar fazer um login inicial usando
a função criada em (1) e já guardar o seu SECURITYTOKEN.
4) Modifique a sua send_msg para fazer exatamente o seguinte:
 - Verifique se está logado (2). Se não, logue (1). (Talvez você queira
fazer umas 3 tentativas antes de desistir, retornando algum erro.)
 - Envie a mensagem.
5) Faça a mesma coisa do passo anterior para sua função get_msg.
6) Adicione alguns testes na sua classe :D



[ ]'s

[1] https://metacpan.org/module/Moose::Manual::Construction#BUILD

-- 
Bruno C. Buss
http://www.brunobuss.net
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120707/59034cf8/attachment.html>


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