PDA

View Full Version : [IRC] Accesso e lettura a database


Napalm
27-04-2005, 09:05
Si parla sempre di programmazione: per un canale IRC dovrei addare e leggere nel db della news di informazione tramite cmd tipo !addnews ecc... il problema è che non sò come fare ed info non ne son riuscito a trovare. Qualcuno sà darmi una mano?

NapalM

SteR9
27-04-2005, 11:03
Si parla sempre di programmazione: per un canale IRC dovrei addare e leggere nel db della news di informazione tramite cmd tipo !addnews ecc... il problema è che non sò come fare ed info non ne son riuscito a trovare. Qualcuno sà darmi una mano?

NapalM
il primo metodo che mi viene in mente è quello di scriverti una pagina asp/php che si interfacci con il database la quale tu richiami tramite una socket di mirc passandole i dati che ti interessano.
ciao :)

Napalm
27-04-2005, 11:38
il primo metodo che mi viene in mente è quello di scriverti una pagina asp/php che si interfacci con il database la quale tu richiami tramite una socket di mirc passandole i dati che ti interessano.
ciao :)

Interessante la storia, però di php non sono a digiuno.. ma di +.. per caso avresti delle dritte da darmi o siti a cui fare riferimento per questo tipo di utilizzo?
Grazie.

NapalM

cionci
27-04-2005, 12:10
Potresti eseguire direttamente anche un eseguibile, o anche un script PHP volendo, senza passare dal web server (php.exe è l'interprete dei comandi php)...

Napalm
27-04-2005, 12:58
Potresti eseguire direttamente anche un eseguibile, o anche un script PHP volendo, senza passare dal web server (php.exe è l'interprete dei comandi php)...

Grazie cioncio, il problema è che php non l'ho mai usato quindi non saprei da che parte iniziale.. avrei bisogno di uqalche esempio in questo ambito.....

NapalM

cionci
27-04-2005, 13:56
Hai usato qualche altro linguaggio di programmazione ? Va bene lo stesso...

Napalm
27-04-2005, 14:03
Hai usato qualche altro linguaggio di programmazione ? Va bene lo stesso...

C C# java.... è possible anche con questi farlo?

NapalM

cionci
27-04-2005, 14:08
Certo, sono eseguibili esterni...e di fatto puoi lanciarli da mIRC...
I parametri glieli passi tramite linea di comando... L'unico casino è prendere dati e mandarli a mIRC, ma anche in questo modo ti puoi organizzare...

Napalm
27-04-2005, 14:15
Certo, sono eseguibili esterni...e di fatto puoi lanciarli da mIRC...
I parametri glieli passi tramite linea di comando... L'unico casino è prendere dati e mandarli a mIRC, ma anche in questo modo ti puoi organizzare...

Quindi dici che compilando un jar se passo jar e parametri (xxx.jar stringa_news) riesco a farla inserire?
per la lettura invece? qua non ne ho la + pallida idea...

NapalM

cionci
27-04-2005, 14:24
Scomodare Java mi sembra la cosa più complicata... Io fra quelli che conosci userei C#...

Per scambiare dati fra l'eseguibile e mIRC puoi usare i file... Devi gestirti un contatore univoco da mIRC per identificare ogni esecuzione del programma esterno ed in base a quel contatore ti crei un file chiamato come il valore del contatore in cui ci metti l'input...l'eseguibile fa le sue operazioni e crea un file con lo stesso nome di quello precedente e ci scrive l'ouput...

Ad esempio: 1.in e 1.out se il contatore è 1...

Come tu possa fare per gestirti un contatore univoco (o quasi) in mIRC non ne ho la più pallida idea, anche perchè l'ultimo script che ho fatto per mIRC risale a 9 anni fa...

Napalm
27-04-2005, 14:32
Scomodare Java mi sembra la cosa più complicata... Io fra quelli che conosci userei C#...

Per scambiare dati fra l'eseguibile e mIRC puoi usare i file... Devi gestirti un contatore univoco da mIRC per identificare ogni esecuzione del programma esterno ed in base a quel contatore ti crei un file chiamato come il valore del contatore in cui ci metti l'input...l'eseguibile fa le sue operazioni e crea un file con lo stesso nome di quello precedente e ci scrive l'ouput...

Ad esempio: 1.in e 1.out se il contatore è 1...

Come tu possa fare per gestirti un contatore univoco (o quasi) in mIRC non ne ho la più pallida idea, anche perchè l'ultimo script che ho fatto per mIRC risale a 9 anni fa...

Azz.. C# è quello che conosco meno.. di solito lavoro con Java durante il giorno :muro:

Per la gestione dello scambio dati quindi dovrei basarmi sulla scrittura e lettura da file.txt per esempio... questa è la cosa più complicata mi pare .... vedrò se scervellandomi un pò riuscirò a combinare qualcosina... grazie per l'aiuto :)

NapalM

cionci
27-04-2005, 14:36
No, IMHO la cosa più complicata è ottenere un contatore che identifichi univocamente ogni chiamata al tuo eseguibile esterno...altrimenti un comando potrebbe sovrascrivere i dati del comando precedente prima che questo sia terminato...

Napalm
27-04-2005, 14:53
No, IMHO la cosa più complicata è ottenere un contatore che identifichi univocamente ogni chiamata al tuo eseguibile esterno...altrimenti un comando potrebbe sovrascrivere i dati del comando precedente prima che questo sia terminato...

Anche quello.. al posto del contatore ci potrebbe anche essere il nick di chi ha fatto la richiesta tipo: nick_in.txt nick_out.txt che si autoeliminano alla fine del ciclo e poi un controllo sull'esistenza di questi file che permette un cmd alla volta da parte di un utente...

NapalM

cionci
27-04-2005, 15:35
Perfetto ;)

Napalm
27-04-2005, 15:37
Perfetto ;)

Eeheh sulla carta è perfetto vedremo durante l'implementazione come farlo :D

NapalM

cionci
27-04-2005, 15:42
Ricordati comunque che se un utente invia due comandi molto vicini il tuo metodo fallisce... Credo che dovresti controllare prima dell'esecuzione del comando se il file con quel nome esiste... Se esiste invii un messaggio di errore all'utente... Ricordati di ripulire la directory dove salvi questi file all'avvio di mIRC per recuperari da eventuali boot improvvisi che ti lasciano i file a giro...

Napalm
28-04-2005, 09:00
Sai per caso se esisteo delle librerie java per parlare con irc... stò cercando in giro ma non trovo nulla...

NapalM

SteR9
28-04-2005, 09:18
Sai per caso se esisteo delle librerie java per parlare con irc... stò cercando in giro ma non trovo nulla...

NapalM

puoi farlo anche tu, il protocollo irc non è molto difficile, sai usare i socket in java?

Napalm
28-04-2005, 09:26
Mmhmh ho trovato questo: http://moepii.sourceforge.net/

Teoricamente potrei far entrare un bot nel chan, quando uno fà !addnews manda un msg privato al bot che acquisisce la stringa e la elabora per inserirla all'interno del db.... può essere?

NapalM

cionci
28-04-2005, 09:30
Certo...può andare...

Napalm
28-04-2005, 10:18
Ho un piccolo problema: stavo testando il client pre compilato che ho trovato qua http://moepii.sourceforge.net/irclib/tutorial.html#5.1

quando lo esegue con java IRC.class -server irc.daxnet.no:6666 -nick napalmtest

mi dà il seguente errore:

Exception in thread "main" java.lang.NoClassDefFoundError: org/schwering/irc/lib
/IRCConnection

come faccio ad includere quella classe che sembra non vederla?

NapalM

Napalm
28-04-2005, 11:04
Problema risolto, ho ricompilato tutto con netbeans ed ora funziona. Riesco a connettermi il problema è che mi disconnette appena connesso:


AUTH> null (notice): *** Looking up your hostname...
AUTH> null (notice): *** Checking Ident
AUTH> null (notice): *** Found your hostname
AUTH> null (notice): *** No Ident response
Connected
Reply #1: napatest Welcome to the EFNet Internet Relay Chat Network napatest

Reply #372: napatest - '-----------------------------------------------------------------'
Reply #376: napatest End of /MOTD command.
Mode: napatest sets modes +i napatest
Error: Closing Link: adsl-ip.it (Client Quit)
Disconnected
BUILD SUCCESSFUL (total time: 14 seconds)


L'ho fatto partire con questi parametri -server irc.daxnet.no:6666 -nick napatico e vi allego anche i sorgenti..

NapalM

cionci
28-04-2005, 12:24
IMHO perchè cerca l'identd (ovvero ident deamon)... S enon è implementato nel client che hai scaricato devi fartelo da solo...

Napalm
01-05-2005, 11:15
IMHO perchè cerca l'identd (ovvero ident deamon)... S enon è implementato nel client che hai scaricato devi fartelo da solo...

Ciao cionci piano piano stò risolvendo un sacco di problemi.. ora riesco a connettermi.. ma ti pongo a te ed ad altri un problema, io da linea di comando eseguo questa applicazione:

javac -classpath test.jar;. *.java

java -classpath test.jar;. Test

il problema è che adesso gli ho inglobato il collegamento al db tramite sql server e devo usare il jar dei driver.. quando compilo tramite netbeans non c'è problema ma quando devo farlo da shell come faccio? Posso usare + di un jar x la compilazione?

NapalM

cionci
03-05-2005, 08:25
Java uhm che è ? Non conosco bene Java...sorry ;)