Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jabber bot rečnici! [email protected] i [email protected]

[es] :: Instant Messaging :: Jabber bot rečnici! [email protected] i [email protected]

Strane: 1 2 3

[ Pregleda: 12196 | Odgovora: 58 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan Gligorijevic
Pančevo

Član broj: 73740
Poruke: 5273

Sajt: milan.rs


+80 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]08.11.2006. u 20:05 - pre 214 meseci
Sasvim slučajno videh temu i baš sam se prijatno iznenadio. Lepo radi.
Možda da tema ode u barem privremeni TOP?
 
Odgovor na temu

boki
Boris Prpic
CTO
CodeZen, Cityexpert
Beograd

SuperModerator
Član broj: 2681
Poruke: 2442
*.adsl.verat.net.

Jabber: boki@elitesecurity.org
ICQ: 195245022
Sajt: www.goglasi.com


+34 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]08.11.2006. u 20:30 - pre 214 meseci
Razmisljam se da li da probam da li radi bot sa transportima ili da ostane jabber only ;)
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]08.11.2006. u 22:11 - pre 214 meseci
Ne znam sta si smislio, ali bot je napisan koriscenjem Smack API-ja i radi samo kao jabber...

[Ovu poruku je menjao Vanja Petreski dana 09.11.2006. u 09:04 GMT+1]
 
Odgovor na temu

boki
Boris Prpic
CTO
CodeZen, Cityexpert
Beograd

SuperModerator
Član broj: 2681
Poruke: 2442
*.adsl.verat.net.

Jabber: boki@elitesecurity.org
ICQ: 195245022
Sajt: www.goglasi.com


+34 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]08.11.2006. u 22:27 - pre 214 meseci
pa ne vidi on neku razliku izmedju jabber korisnika i nekog drugog preko transporta
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4785 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]08.11.2006. u 23:03 - pre 214 meseci
Upravo, moze preko transport-a.
Provuci ga na komercijalne mreze i neka izbacuje i reklame uz rezutate :P
 
Odgovor na temu

ton_majstor

Član broj: 36874
Poruke: 4531
*.adsl.sezampro.yu.



+4 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]08.11.2006. u 23:19 - pre 214 meseci
Sviđa mi se, ali malo baguje. Čas ga ima, pa ga nema, pa "zaboravi" sve...

Avatar je sjajan!

Pozdrav!
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]09.11.2006. u 08:03 - pre 214 meseci
Jedino podesavanje o korisniku je njegov izabrani smer i cuva se u hash-u. To znaci da ukoliko se vratite posle 5 dana, a bot nije restartovan, sacuvace vas poslednji smer.

Pretpostavljam da ga je boki iskljucivao/ukljucivao...

Btw, ako imate jos neke ideje, mozemo i to da ubacimo ako bude zanimljivo ;)
 
Odgovor na temu

boki
Boris Prpic
CTO
CodeZen, Cityexpert
Beograd

SuperModerator
Član broj: 2681
Poruke: 2442
217.24.20.*

Jabber: boki@elitesecurity.org
ICQ: 195245022
Sajt: www.goglasi.com


+34 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]09.11.2006. u 08:43 - pre 214 meseci
"Pretpostavljam da ga je boki iskljucivao/ukljucivao..."

aham. Pucao je malo...
 
Odgovor na temu

Dusan Marjanovic
Consultant, SAS
Beograd

Član broj: 59
Poruke: 1290
*.dusan.info.

Jabber: dusanm@gmail.com
ICQ: 84621598
Sajt: marjanovic.net


+6 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]09.11.2006. u 09:05 - pre 214 meseci
How about opensourcing it? ;)
VMware VCP/Microsoft MCSE 2003/HP ASE
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.antegra.com.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]09.11.2006. u 11:32 - pre 214 meseci
Nema problema, ce ga napravimo opensource ;)

Ne znam da li da pravimo novi projekat na SF (na primer) ili prosto da pustim ovde sors?

Btw, sad ga akam preko GTalk-a i nista mi ne odgovora!

Jel neko uspeo da komunicira sa njim preko GTalka?

V
 
Odgovor na temu

boki
Boris Prpic
CTO
CodeZen, Cityexpert
Beograd

SuperModerator
Član broj: 2681
Poruke: 2442
*.adsl.verat.net.

Jabber: boki@elitesecurity.org
ICQ: 195245022
Sajt: www.goglasi.com


+34 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]09.11.2006. u 18:46 - pre 214 meseci
Citat:
java.lang.NullPointerException
at jabber.Bot$1.processPacket(Bot.java:38)
at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(Pa
cketReader.java:822)
at org.jivesoftware.smack.PacketReader.processListeners(PacketReader.jav
a:260)
at org.jivesoftware.smack.PacketReader.access$100(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$2.run(PacketReader.java:72)

 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]09.11.2006. u 19:49 - pre 214 meseci
Hm, to znaci da je neko uspeo da posalje praznu poruku!

Btw:



Code:

package jabber;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import org.jivesoftware.smack.*;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.*;
import recnik.RecnikEnSrNew;
import recnik.RecnikSrEnNew;

public class Bot {

    private RecnikEnSrNew recnikEnSr;
    private RecnikSrEnNew recnikSrEn;
    private XMPPConnection con;
    private Roster roster;
    private PacketFilter filter;
    Map<String, Boolean> smerovi;
    
    public Bot(String user, String pass, String server) {
        try {
            recnikEnSr = new RecnikEnSrNew();
            recnikSrEn = new RecnikSrEnNew();
            smerovi = new HashMap<String, Boolean>();
            con = new SSLXMPPConnection(server);
            con.login(user, pass);
            roster = con.getRoster();
            roster.setSubscriptionMode(Roster.SUBSCRIPTION_ACCEPT_ALL);
            filter = new PacketTypeFilter(Message.class);
            PacketListener osluskivac = new PacketListener() {
                public void processPacket(Packet packet) {
                    Message m = (Message)packet;
                    String from = m.getFrom().substring(0, m.getFrom().indexOf('/'));
                    String por = m.getBody();
                    
                    if(por.charAt(0) == '#') // TU JE PUKO!
                        obradiKomandu(from, por.substring(1));
                    else
                        odgovori(from, por);
                    
                }
            };
            con.addPacketListener(osluskivac, filter);
        } catch (Exception e) { e.printStackTrace(); }
    }
    
    private void obradiKomandu(String posiljalac, String komanda) {
        try {
            if(!smerovi.containsKey(posiljalac))
                smerovi.put(posiljalac, true); // default smer en > sr
            if(komanda.equals("smer")) {
                smerovi.put(posiljalac, !smerovi.get(posiljalac)); // Obrce smer!
                con.createChat(posiljalac).sendMessage("Podešen je smer: " + (smerovi.get(posiljalac) ? "en-sr!" : "sr-en!"));
            }
            // Ovde idu else if-ovi...
            else
                con.createChat(posiljalac).sendMessage("Ta komanda ne postoji!");
        } catch (Exception e) { e.printStackTrace(); }
    }
    
    private void odgovori(String posiljalac, String poruka) {
        try {
            if(!smerovi.containsKey(posiljalac))
                smerovi.put(posiljalac, true); // default smer en > sr
            con.createChat(posiljalac).sendMessage(smerovi.get(posiljalac) ? recnikEnSr.prevedi(poruka) : recnikSrEn.prevedi(poruka));
        } catch (Exception e) { e.printStackTrace(); }
    }
    
    public static void main(String[] args) {
        
        if(args.length != 3) {
            System.out.println("Usage: java -jar BotRecnik.jar user pass server");
            System.exit(0);
        }
        
        new Bot(args[0], args[1], args[2]);
        
        while(true) {
            Scanner scan = new Scanner(System.in);
            scan.next();
        }
        
    }

}

Prikačeni fajlovi
 
Odgovor na temu

boki
Boris Prpic
CTO
CodeZen, Cityexpert
Beograd

SuperModerator
Član broj: 2681
Poruke: 2442
*.adsl.verat.net.

Jabber: boki@elitesecurity.org
ICQ: 195245022
Sajt: www.goglasi.com


+34 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]10.11.2006. u 13:02 - pre 213 meseci
To sam se ja malo prijavio na njegov account da vidim koliko ima korisnika :)

Ovo puca stalno, na svakih po' sata...



 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]10.11.2006. u 20:02 - pre 213 meseci
Ma glupost - treba samo da ubacim jedan if...

Gledacu da stignem da za vikend sredim malkice kod i Ant skriptu pa da obesim kod :)

V
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]11.11.2006. u 16:45 - pre 213 meseci
Dosta ljudi mi je trazilo sors, pa da ne biste cekali da sredim neke stvarcice, evo celog koda ovde (4 klase)

Code:

package recnik;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public abstract class RecnikANew {
    
    static Connection conn;
    
    public RecnikANew() throws Exception {
        Class.forName("org.hsqldb.jdbcDriver");
        conn = DriverManager.getConnection("jdbc:hsqldb:db/db_vesna", "sa", "");
    }
    
    public abstract String prevedi(String rec) throws SQLException;
    
    protected abstract int getId(String rec) throws SQLException;
    
    public static void shutdown() throws SQLException {
        Statement st = conn.createStatement();
        st.execute("SHUTDOWN");
        conn.close();
    }
}


Code:

package recnik;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class RecnikEnSrNew extends RecnikANew {
    
    public RecnikEnSrNew() throws Exception {
        super();
    }
    
    public String prevedi(String rec) throws SQLException {
        try {
            rec = rec.toLowerCase().trim();
            PreparedStatement prep = conn.prepareCall("SELECT word FROM rel_table INNER JOIN sr_table ON rel_table.id2 = sr_table.id WHERE rel_table.id1 = ? ORDER BY word");
            prep.clearParameters();
            prep.setInt(1, getId(rec));
            ResultSet rezultat = prep.executeQuery();
            StringBuilder s = new StringBuilder("");
            while(rezultat.next()) {
                s.append(rezultat.getString("word") + ", ");
            }
            s.deleteCharAt(s.lastIndexOf(","));
            s.deleteCharAt(s.lastIndexOf(" "));
            s.append(".");
            return s.toString();
        } catch (SQLException e) { return "Nema prevoda te reči!"; } // Da ne baci No Data izuzetak kad ne nadje prevod!!!
    }
    
    protected int getId(String rec) throws SQLException {
        PreparedStatement prep = conn.prepareCall("SELECT id FROM en_table WHERE word = ?");
        prep.clearParameters();
        prep.setString(1, rec);
        ResultSet rezultat = prep.executeQuery();
        rezultat.next();
        return rezultat.getInt("id");
    }
    
}


Code:

package recnik;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class RecnikSrEnNew extends RecnikANew {
    
    public RecnikSrEnNew() throws Exception {
        super();
    }
    
    public String prevedi(String rec) throws SQLException {
        try {
            rec = rec.toLowerCase().trim();
            PreparedStatement prep = conn.prepareCall("SELECT word FROM rel_table INNER JOIN en_table ON rel_table.id1 = en_table.id WHERE rel_table.id2 = ? ORDER BY word");
            prep.clearParameters();
            prep.setInt(1, getId(rec));
            ResultSet rezultat = prep.executeQuery();
            StringBuilder s = new StringBuilder("");
            while(rezultat.next()) {
                s.append(rezultat.getString("word") + ", ");
            }
            s.deleteCharAt(s.lastIndexOf(","));
            s.deleteCharAt(s.lastIndexOf(" "));

            s.append(".");
            return s.toString();
        } catch (SQLException e) { return "Nema prevoda te reči!"; } // Da ne baci No Data izuzetak kad ne nadje prevod!!!
    }
    
    protected int getId(String rec) throws SQLException {
        PreparedStatement prep = conn.prepareCall("SELECT id FROM sr_table WHERE word = ?");
        prep.clearParameters();
        prep.setString(1, rec);
        ResultSet rezultat = prep.executeQuery();
        rezultat.next();
        return rezultat.getInt("id");
    }
    
}


Code:

package jabber;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import org.jivesoftware.smack.*;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.*;
import recnik.RecnikEnSrNew;
import recnik.RecnikSrEnNew;

public class Bot {

    private RecnikEnSrNew recnikEnSr;
    private RecnikSrEnNew recnikSrEn;
    private XMPPConnection con;
    private Roster roster;
    private PacketFilter filter;
    Map<String, Boolean> smerovi;
    
    public Bot(String user, String pass, String server) {
        try {
            recnikEnSr = new RecnikEnSrNew();
            recnikSrEn = new RecnikSrEnNew();
            smerovi = new HashMap<String, Boolean>();
            con = new SSLXMPPConnection(server);
            con.login(user, pass);
            roster = con.getRoster();
            roster.setSubscriptionMode(Roster.SUBSCRIPTION_ACCEPT_ALL);
            filter = new PacketTypeFilter(Message.class);
            PacketListener osluskivac = new PacketListener() {
                public void processPacket(Packet packet) {
                    Message m = (Message)packet;
                    String from = m.getFrom().substring(0, m.getFrom().indexOf('/'));
                    String por = m.getBody();
                    
                    if(por.charAt(0) == '#')
                        obradiKomandu(from, por.substring(1));
                    else
                        odgovori(from, por);
                    
                }
            };
            con.addPacketListener(osluskivac, filter);
        } catch (Exception e) { e.printStackTrace(); }
    }
    
    private void obradiKomandu(String posiljalac, String komanda) {
        try {
            if(!smerovi.containsKey(posiljalac))
                smerovi.put(posiljalac, true); // default smer en > sr
            if(komanda.equals("smer")) {
                smerovi.put(posiljalac, !smerovi.get(posiljalac)); // Obrce smer!
                con.createChat(posiljalac).sendMessage("Podešen je smer: " + (smerovi.get(posiljalac) ? "en-sr!" : "sr-en!"));
            }
            // Ovde idu else if-ovi...
            else
                con.createChat(posiljalac).sendMessage("Ta komanda ne postoji!");
        } catch (Exception e) { e.printStackTrace(); }
    }
    
    private void odgovori(String posiljalac, String poruka) {
        try {
            if(!smerovi.containsKey(posiljalac))
                smerovi.put(posiljalac, true); // default smer en > sr
            con.createChat(posiljalac).sendMessage(smerovi.get(posiljalac) ? recnikEnSr.prevedi(poruka) : recnikSrEn.prevedi(poruka));
        } catch (Exception e) { e.printStackTrace(); }
    }
    
    public static void main(String[] args) {
        
        if(args.length != 3) {
            System.out.println("Usage: java -jar BotRecnik.jar user pass server");
            System.exit(0);
        }
        
        new Bot(args[0], args[1], args[2]);
        
        while(true) {
            Scanner scan = new Scanner(System.in);
            scan.next();
        }
        
    }

}


Bazu imate u izvrsnoj verziji...

V
 
Odgovor na temu

momsab
Momčilo
Beograd, R.Srbija

Član broj: 2804
Poruke: 3041
*.dynamic.sbb.co.yu.

Jabber: pitati@PP
Sajt: www.momsab.com


+1 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]14.11.2006. u 00:59 - pre 213 meseci
dobro je, lakse nego da idem na metak.com :)
mada, metak je sajt i bolji bolji pregled
hm, kad bi se ovaj bot povezao sa metak.com bilo bi odlicno
Žena u krevetu i vino na stolu nikako ne smeju da čekaju. Jer, vino se greje a žena hladi.

-vinolog
 
Odgovor na temu

boki
Boris Prpic
CTO
CodeZen, Cityexpert
Beograd

SuperModerator
Član broj: 2681
Poruke: 2442
217.24.24.*

Jabber: boki@elitesecurity.org
ICQ: 195245022
Sajt: www.goglasi.com


+34 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]14.11.2006. u 10:02 - pre 213 meseci
razmisljao sam o tome ali ne znam ja to da uradim :)
 
Odgovor na temu

drdrksa

Član broj: 1077
Poruke: 3650



+6 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]14.11.2006. u 17:48 - pre 213 meseci
Moram da Vam se pozalim na bot. Meni ne radi. Nikako. Koristim Jabber.ru i Gaim i nece. Bukvalno me sve vreme ignorise.

Sta mislite, u cemu je problem?
 
Odgovor na temu

Milan Gligorijevic
Pančevo

Član broj: 73740
Poruke: 5273

Sajt: milan.rs


+80 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]14.11.2006. u 17:56 - pre 213 meseci
Ni kod mene nije bolja situacija :(
Već nekoliko dana ne reaguje.
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.antegra.com.



+13 Profil

icon Re: Jabber bot rečnici! [email protected] i [email protected]14.11.2006. u 19:10 - pre 213 meseci
Postoje neka 2 problema:

1) Treba da ubacim neke ifove da kada dodje prazna poruka da ne baci izuzetak, vec da iskulira, ali to nikako da stignem :D

2) Treba da se javi neko ko ima server i to ne na adsl-u, nego pravi server da to pusti i da ne dira...

Tada ce sve biti super :)

Ja mogu da obecam da cu za prvi vikend da ubacim taj if i da posaljem kod flylord-a (ako mi je jos otvoren nalog?).

A u medjuvremenu da se javi dobrovoljac da ozbiljno hostuje bota!

V

[Ovu poruku je menjao Vanja Petreski dana 15.11.2006. u 20:22 GMT+1]
 
Odgovor na temu

[es] :: Instant Messaging :: Jabber bot rečnici! [email protected] i [email protected]

Strane: 1 2 3

[ Pregleda: 12196 | Odgovora: 58 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.