[BOT] Comando !news senza permesso

Difficoltà con il BOT ? Qui puoi esporre i tuoi problemi.
BuDuS
Amministratore
Messaggi: 364
Iscritto il: 19/07/2009, 14:15
Contatta:

[BOT] Comando !news senza permesso

Messaggioda BuDuS » 01/11/2010, 19:48

AGGIORNAMENTO DEL 24/11/2010: Le istruzioni descritte di seguito non sono più valide/necessarie a partire dalla versione 12.4 del BOT.


Mi è stato chiesto come fare in modo che il comando !news sia accessibile da chiunque, senza restrizioni.

Sottolineo subito una cosa: è un comando piuttosto pesante in termini di elaborazione, che impegna il BOT per diversi secondi quando usato; ciò significa che, se qualcuno ne fa un cattivo uso, il BOT viene messo KO molto facilmente.

Detto questo, se proprio lo si vuole rendere accessibile a chiunque, procedere come segue:
  • Modificare con un editor di testo (gedit, ad esempio) il file $HOME/.xchat2/buduscript/operator.lst ed aggiungere una riga simile alla seguente:

    Codice: Seleziona tutto

    #CANALE:/,REMOTE,>news/

    dove "CANALE" dovrà essere sostituito dal nome del canale nel quale consentire l'accesso a chiunque, facendo attenzione a rispettare Maiuscole/minuscole.
  • Modificare con un editor di testo (gedit, ad esempio) il file $HOME/.xchat2/buduscript/botconnect.mcr ed aggiungere le seguenti 2 righe:

    Codice: Seleziona tutto

    /event list spcl_news -
    /event add 0 spcl_news !news='$data' /budus cmd /budus pipe_script $HOME/.xchat2/buduscript/budus_news.sh \($lu\) \(,REMOTE,\) \($rhost\) \($channel\) \($hostname\) \(removecolors( $data )\)
  • Le 2 righe aggiunte usarle anche come comandi, direttamente nella finestra del BOT, in modo da rendere operative le modifiche senza la necessità di riavviarlo.

Se il BOT non reagisce più al comando "!news", verificare attraverso il comando:

Codice: Seleziona tutto

/event list spcl_news

che siano presenti almeno le seguenti righe (la seconda sarà solo simile):

Codice: Seleziona tutto

[ ???] (   1)  0 spcl_news !news='$data' /budus cmd /budus pipe_script $HOME/.xchat2/buduscript/budus_news.sh \($lu\) \(,REMOTE,\) \($rhost\) \($channel\) \($hostname\) \(removecolors( $data )\)
[ ???] (   1)  0 text 'NOME_DEL_SERVER:#NOME_DEL_CANALE'='$hostname:$channel' /event event spcl_news $lu $ru $rhost $channel $server $data

facendo sempre attenzione a Maiuscole/minuscole. È anche opportuno che le righe di cui sopra, siano state scritte facendo dei "copia/incolla": anche uno spazio può essere determinante per la corretta sintassi di un comando.

Zio

Re: [BOT] Comando !news senza permesso

Messaggioda Zio » 18/11/2010, 17:18

Ho seguito tutta la procedura descritta ma, una volta inserite le modifiche, le news non vanno più :| anche cercando di ripristinarle come descritto dopo

BuDuS
Amministratore
Messaggi: 364
Iscritto il: 19/07/2009, 14:15
Contatta:

Re: [BOT] Comando !news senza permesso

Messaggioda BuDuS » 19/11/2010, 20:08

Zio ha scritto:Ho seguito tutta la procedura descritta ma, una volta inserite le modifiche, le news non vanno più :| anche cercando di ripristinarle come descritto dopo


I comandi successivi non servono per ripristinarle, ma per verificare che le cose siano ok.
Dovresti incollare il risultato di questo comando:

Codice: Seleziona tutto

/event list spcl_news

in questo modo si ha una base di partenza per indagare sul problema.

Zio

Re: [BOT] Comando !news senza permesso

Messaggioda Zio » 23/11/2010, 19:56

questo il risultato del comando

[ ???] ( 1) 0 spcl_news !news='$data' /budus cmd /budus pipe_script $HOME/.xchat2/buduscript/budus_news.sh \($lu\) \(,REMOTE,\) \($rhost\) \($channel\) \($hostname\) \(removecolors( $data )\)

credo che comunque il problema dipenda sempre dall ` come dicevi anche tu

spero di essere stato utile

BuDuS
Amministratore
Messaggi: 364
Iscritto il: 19/07/2009, 14:15
Contatta:

Re: [BOT] Comando !news senza permesso

Messaggioda BuDuS » 24/11/2010, 9:28

Ma QUESTO lo hai letto ?

Zio

Re: [BOT] Comando !news senza permesso

Messaggioda Zio » 24/11/2010, 12:10

ops, sorry non avevo visto, ok ti ringrazio per l'aggiornamento, l'ho aggiornato ora appena posso lo provo

grazie

Zio

Re: [BOT] Comando !news senza permesso

Messaggioda Zio » 24/11/2010, 12:50

Zio ha scritto:ops, sorry non avevo visto, ok ti ringrazio per l'aggiornamento, l'ho aggiornato ora appena posso lo provo

grazie


ho provato ora e funziona tutto perfettamente, appena posso faccio qualche altro test sulla ` per capire meglio il problema, vi tengo informati

grazie per l'aggiornamento

Zio

Re: [BOT] Comando !news senza permesso

Messaggioda Zio » 24/11/2010, 13:36

vi comunico che con la nuova release è stato risolto il presunto problema della ` , ora funziona tutto

grazie ancora

Zio

Re: [BOT] Comando !news senza permesso

Messaggioda Zio » 24/11/2010, 21:30

Zio ha scritto:vi comunico che con la nuova release è stato risolto il presunto problema della ` , ora funziona tutto

grazie ancora


la cosa curiosa ora è che che facendo il comando

Codice: Seleziona tutto

!admin @ add news
anche io che sono livello 0 posso usare "solo" il comando news (da 3 righe per intenderci) e non mi fa fare più il !news list ad esempio, esiste un modo per abilitare anche "news list"?

BuDuS
Amministratore
Messaggi: 364
Iscritto il: 19/07/2009, 14:15
Contatta:

Re: [BOT] Comando !news senza permesso

Messaggioda BuDuS » 24/11/2010, 22:13

Dunque, diciamo che ora, abilitando il comando a "tutti quanti", limita la lista a 3 risultati indipendentemente da chi ha lanciato il comando.
Effettivamente è meglio che gli utenti di livello 3 o superiore abbiano il sub-comando "list" non limitato; nella prossima versione funzionerà così.

Fino ad aggiornamento, per modificare il comportamento, è necessario applicare una patch, procedendo in questo modo:
  • Aprire un terminale e dare i seguenti comandi (se non è installato gedit usare un qualsiasi altro editor di testo conosciuto):

    Codice: Seleziona tutto

    cd $HOME/.xchat2/buduscript
    gedit budus_news.patch
  • Incollare dentro all'editor di testo il seguente codice:

    Codice: Seleziona tutto

    *** budus_news.sh   2010/11/20 16:24:28   1.5
    --- budus_news.sh   2010/11/24 19:47:32
    ***************
    *** 397,405 ****
            # Controlla i privilegi dell'utente; se non sono
            # almeno di livello 3, provvede a forzare la lista
            # delle ultime 3 news disponibili.
    !       findnick=$(grep -iFe "${channel}:" ${script_path}/operator.lst \
    !           | grep -iFe "/${remote_user}>news/" -iFe "/@>news/")
    !       if [ "${findnick}" != "" ];then
                last_news_number=3
            fi
            
    --- 397,404 ----
            # Controlla i privilegi dell'utente; se non sono
            # almeno di livello 3, provvede a forzare la lista
            # delle ultime 3 news disponibili.
    !       user_privilege=$(${script_path}/budus_admin.sh "${local_user}" "${remote_user}" "${remote_host}" "${channel}" "${hostname}" "data" GET_REMOTE_USER_PRIVILEGE_ONLY)
    !       if [ ${user_privilege:-5} -gt 3 ];then
                last_news_number=3
            fi
            
    ***************
    *** 460,468 ****
               # Controlla i privilegi dell'utente; se non
               # sono almeno di livello 3, provvede a forzare
               # la lista delle ultime news disponibili.
    !          findnick=$(grep -iFe "${channel}:" ${script_path}/operator.lst \
    !              | grep -iFe "/${remote_user}>news/" -iFe "/@>news/")
    !          if [ "${findnick}" == "" ];then
                   output_command=${list_command}
                   echo "/${list_command} Lista delle$(if [ "${keywords}" != "all" ]; then echo " ultime ${max_news_list}"; fi) News disponibili:"
               else
    --- 459,466 ----
               # Controlla i privilegi dell'utente; se non
               # sono almeno di livello 3, provvede a forzare
               # la lista delle ultime news disponibili.
    !          user_privilege=$(${script_path}/budus_admin.sh "${local_user}" "${remote_user}" "${remote_host}" "${channel}" "${hostname}" "data" GET_REMOTE_USER_PRIVILEGE_ONLY)
    !          if [ ${user_privilege:-5} -le 3 ];then
                   output_command=${list_command}
                   echo "/${list_command} Lista delle$(if [ "${keywords}" != "all" ]; then echo " ultime ${max_news_list}"; fi) News disponibili:"
               else
  • Salvare e chiudere gedit.
  • Cambiare i permessi dello script e applicare la patch con i seguenti comandi:

    Codice: Seleziona tutto

    chmod u+rwx budus_news.sh
    patch -l < budus_news.patch

Non serve ri-avviare il BOT, la modifica è immediatamente operativa.


Torna a “Supporto BOT”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite