Zwame DLL

inginheiiro

Power Member
Boas.

decidi fazer um pequeno exercicio mental, depois de ler alguns comentários na thread
Dev-ZWAME [Informações e Discussões]

Antes de continuar, devo deixar o seguinte esclarecimento:

  • Não pretendo participar/rivalizar em projectos
  • Pelo que percebi o vbulletin não tem forma de autenticação por terceiros.
  • Só fiz a DLL porque vi um pequeno desafio (pessoal)...:zzz:

assim, desenvolvi uma DLL em C#Zwame .Net API que permite interagir com o site ZWAME.

  1. Não me responsabilizo pelo uso da DLL.
  2. Podem usa-la desde que mantenham os direitos de Autor, bem como as suas referências.
Basicamente a DLL permite efectuar login ao site da Zwame, e "descarregar" qq link como um documento XML XHTML (limpo), usando o SGMLReader.

Exemplo de utilização:
Código:
            ZwameLogin l = new ZwameLogin ("inginheiiro", "querias tu saber");
            using (ZwameWebRequest wr = new ZwameWebRequest(l))
            {
                /* vai buscar a pagina HTML de mensagens privadas */
                XmlDocument d= wr.LoadZwameUrl("http://forum.zwame.pt/private.php?");

                /* Retorna para um DataSet todas as mensagens privadas. */
                DataSet ds = wr.LoadZwamePrivateMessages();
            }
 
Última edição:
Sim senhor!!! assim que me virar para C# (agora ando virado pro java, ai meu rico .NET) hei-de fazer qualquer coisa com isto... (se conseguir).
 
Última edição:
só tu é que comentas os meus "inuteis" posts...
mas sinceramente o que é que estavas a espera? que alguem realmente levasse para a frente os tais projectos maravilha da zwame? até parece que és novo nestas coisas e não sabes como isto funciona..
ao inicio é tudo cheio de ideias e vontade, aliás a thread de dev-zwame em poucos dias chegou a uma data de paginas, era só pessoas a postarem ideias e que deviam ter um sub-forum e não sei mais o que.. a verdade é que o pouco que li até me da um pouco vontade de rir, dá vontade porque conheço a sensação, já programo ha anos e também no inicio já tentei participar em projectos do genero, mas a verdade é que nunca da em nada.
a razão é simples, são projectos complicados que requerem experiencia e organização e quem sabe alguma coisa não se mete nisso porque sabe que não vai dar em nada (e porque tem mais que fazer também provavelmente), ficando assim aqueles que tem 0 de experiencia e muita vontade, so que a vontade não trabalha sozinha.

on topic:
mas pronto bom trabalho :) sempre é menos coisas que têm que fazer, isto se algum vez levarem algo em frente (espero bem que sim claro).
 
ao inicio é tudo cheio de ideias e vontade, aliás a thread de dev-zwame em poucos dias chegou a uma data de paginas, era só pessoas a postarem ideias e que deviam ter um sub-forum e não sei mais o que.. a verdade é que o pouco que li até me da um pouco vontade de rir, dá vontade porque conheço a sensação, já programo ha anos e também no inicio já tentei participar em projectos do genero, mas a verdade é que nunca da em nada.
a razão é simples, são projectos complicados que requerem experiencia e organização e quem sabe alguma coisa não se mete nisso porque sabe que não vai dar em nada (e porque tem mais que fazer também provavelmente), ficando assim aqueles que tem 0 de experiencia e muita vontade, so que a vontade não trabalha sozinha.
true ...

cumps
 
Antes de mais, gostava de parabenizar a iniciativa, uma vez que pode instigar a participação no projecto, que aparentemente já não tem o fulgor inicial, tal como o sapropel apontou.

Em relação ao projecto em si, sugeria apenas que fosse criado um modelo de objectos para as mensagens privadas, ao invés do DataSet. Adicionalmente, também não vejo vantagens em publicar o projecto sobre a forma de "closed source", uma vez que outras pessoas poderiam ter interesse em fazer o port da aplicação para outra linguagem/plataforma, ou mesmo alterá-la no caso de a mesma deixar de funcionar numa futura versão do vBulletin, devido a uma mudança na query string, por exemplo.
 
Antes de mais, gostava de parabenizar a iniciativa, uma vez que pode instigar a participação no projecto, que aparentemente já não tem o fulgor inicial, tal como o sapropel apontou.

Em relação ao projecto em si, sugeria apenas que fosse criado um modelo de objectos para as mensagens privadas, ao invés do DataSet. Adicionalmente, também não vejo vantagens em publicar o projecto sobre a forma de "closed source", uma vez que outras pessoas poderiam ter interesse em fazer o port da aplicação para outra linguagem/plataforma, ou mesmo alterá-la no caso de a mesma deixar de funcionar numa futura versão do vBulletin, devido a uma mudança na query string, por exemplo.

posso criar um modelo de dados relativo ao dataset.

quanto ao ser closed source... para já fica assim. Se alguém mostrar interesse em usar a dll com algum propósito util, eu abro o source code.
 
update

Aproveitando a sugestão do AliFromCairo


eis o link para a nova DLL Zwame DLL V2


Código:
ZwameLogin l = new ZwameLogin ("inginheiiro", "querias tu saber");
using (ZwameWebRequest wr = new ZwameWebRequest(l))
{

               /* Vai Buscar todas as Mensagens Privadas Enviadas*/
                List <ZwamePrivateMessage> pmel = wr.LoadZwamePrivateMessagesSend();
                if (pmel != null)
                {
                    /* Percorre a lista de Mensagens Privadas Enviadas*/
                    foreach (ZwamePrivateMessage zpm in pmel)
                    {
                        Console.WriteLine(string.Format("Data Envio: {0}", zpm.Data));
                        Console.WriteLine(string.Format("Assunto {0}", zpm.Assunto));
                        Console.WriteLine(string.Format("De: {0}", zpm.FromUserZwame));
                        Console.WriteLine("Para:");
                        foreach (string user in zpm.ToUsersZwame)
                            Console.WriteLine(string.Format(user));
                        Console.WriteLine(string.Format("Mensagem:{0}", zpm.Mensagem));
                        Console.WriteLine();
                    }
                }


                /* Vai Buscar todas as Mensagens Privadas Recebidas*/
                List<ZwamePrivateMessage> pmrl = wr.LoadZwamePrivateMessagesReceived();
                if (pmrl != null)
                {
                    /* Percorre a lista de Mensagens Privadas Recebidas*/
                    foreach (ZwamePrivateMessage zpm in pmrl)
                    {
                        Console.WriteLine(string.Format("Data Recepção: {0}", zpm.Data));
                        Console.WriteLine(string.Format("Assunto {0}", zpm.Assunto));
                        Console.WriteLine(string.Format("De: {0}", zpm.FromUserZwame));
                        Console.WriteLine("Para:");
                        foreach (string user in zpm.ToUsersZwame)
                            Console.WriteLine(string.Format(user));
                        Console.WriteLine(string.Format("Mensagem:{0}", zpm.Mensagem));
                        Console.WriteLine();
                    }

                }

}
 
Isto realmente dá vontade de rir.

O inginheiiro resolve por iniciativa própria dar um avanço às coisas (parece ser o único) e depois das coisas feitas chovem logo pedidos para open-source.
 
Excelente. Fico muito contente pelo esforço.

Isto é ter 99% do trabalho feito :) a rapaziada da outra thread está tão preocupada com tretas que ainda nem deve ter reparado nisto, enfim.


Excelente seria, quando possível, portar isto para uma linguagem mais universal, não digo Java porque é um bocadito pesada, mas Python talvez... (e daí Java, para telemóveis ou assim).
inginheiiro, muito bom mesmo :) obrigado.
 
Imaginem um cliente no system tray que avisa quando um tópico subscrito recebe um novo post?
Parabéns pelo trabalho Sr. inginheiiro :x2:

thanks,

essas "funcionalidades" e outras, requerem ainda alguma ginastica a fazer o parser do XHTML.
a questão das PrivateMessages é + simples já que o Vbulletin fornece (link) essa info em XML.

com a DLL, o caminho para possiveis "widgets/apps" está "iniciado".

cumps
 
Zwame 2

back from the grave ...

como não tenho interesse em deixar morrer isto, até pq acho que pode ser útil, adicionei algumas features à classe inicial !

Agora para a framework 3.5 (XLINQ rules).

-adicionei um metodo que permite listar todos os forums do zwame.
Código:
 ZwameLogin l = new ZwameLogin ("inginheiiro", "querias tu saber");
 using (ZwameWebRequest wr = new ZwameWebRequest(l))
 {
       Dictionary<string, int> frns = wr.LoadZwameForuns();
       foreach (string forum in frns.Keys)
        Console.WriteLine(forum+"  numero "+frns[forum]);

 }

-adicionei um metodo que permite retornar todos os posts (Titulo, sumario, Url) de um forum especifico.

Código:
 ZwameLogin l = new ZwameLogin ("inginheiiro", "querias tu saber");
 using (ZwameWebRequest wr = new ZwameWebRequest(l))
 {
       // O forum numero 20 é o forum vende-se
       List<ZwameThread> tt = wr.LoadZwameForum(20, 1);
       foreach (ZwameThread t in tt)
          Console.WriteLine(t.Assunto);
 }


como devem já ter percebido, isto é conseguido fazendo parser ao xhtml retornado.

link da Nova Zwame DLL frmk 3.5

se alguém que demonstre alguma credebelidade estiver interessado em criar algo útil para a comunidade usando a DLL, que me contacte por PM que eu "abro" o código da mesma.


/ing
 
Back
Topo