1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Zwame DLL

Discussão em 'Programação' iniciada por inginheiiro, 3 de Março de 2009. (Respostas: 18; Visualizações: 1439)

  1. inginheiiro

    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: 5 de Março de 2009
  2. mcog_blaster

    mcog_blaster Power Member

    Um senhor...:D
     
  3. inginheiiro

    inginheiiro Power Member

    só tu é que comentas os meus "inuteis" posts...
     
  4. arconada

    arconada Power Member

    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: 4 de Março de 2009
  5. sapropel

    sapropel Power Member

    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).
     
  6. inginheiiro

    inginheiiro Power Member

    true ...

    cumps
     
  7. AliFromCairo

    AliFromCairo Power Member

    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.
     
  8. tomassantos

    tomassantos To fold or to FOLD?

    Desculpem isto, mas como é que consigo abir o .dll?
     
  9. inginheiiro

    inginheiiro Power Member

    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.
     
  10. inginheiiro

    inginheiiro Power Member

    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();
                        }
    
                    }
    
    }
    
     
  11. Corpsegrinder

    Corpsegrinder Banido

    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.
     
  12. souto

    souto To fold or to FOLD?

    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.
     
  13. Jekkaman

    Jekkaman Power Member

    Imaginem um cliente no system tray que avisa quando um tópico subscrito recebe um novo post?
    Parabéns pelo trabalho Sr. inginheiiro :x2:
     
  14. inginheiiro

    inginheiiro Power Member

    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
     
  15. tomassantos

    tomassantos To fold or to FOLD?

    Mas como é que um utilizador usa isto?
     
  16. _freelancer_

    _freelancer_ Power Member

    Adicionas uma referência no teu projecto para este DLL e passas a poder usar classes do namespace Zwame.
     
  17. Jammin @

    Jammin @ Power Member

    Façam lá ai uma especie de exemplo que isto ia-me já dar grande jeito
     
  18. inginheiiro

    inginheiiro Power Member

    update

    A pedido de alguns "users", eis um exemplo em VB.NET (vs2005) :wow:

    Projecto Vb.net

    /ing
     
  19. inginheiiro

    inginheiiro Power Member

    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
     

Partilhar esta Página