×
Create a new article
Write your page title here:
We currently have 3,189 articles on s23. Type your article name above or create one of the articles listed here!



    s23
    3,189Articles

    TclScripts/UrlGrab: Difference between revisions

    Content added Content deleted
    imported>mutante
    No edit summary
     
    imported>mutante
    mNo edit summary
    Line 6: Line 6:


    It only logs to a text file though, but we have [http://rufus.o-town.de/(en)/eggdrop/pub/mysql/libmysqltcl.so-linux-glibc2-x86.tar.gz libmysqltcl] installed (on s23.org) so we can add MySql commands like this:
    It only logs to a text file though, but we have [http://rufus.o-town.de/(en)/eggdrop/pub/mysql/libmysqltcl.so-linux-glibc2-x86.tar.gz libmysqltcl] installed (on s23.org) so we can add MySql commands like this:
    <pre>

    # added sql insert by mutante
    # added sql insert by mutante
    set db [mysqlconnect -host localhost -user <user> -password <password> -db ircurls]
    set db [mysqlconnect -host localhost -user <user> -password <password> -db ircurls]
    Line 12: Line 12:
    puthelp "privmsg mutante :Added to sql-db : url: $url chan: $lchan nick: $nick date: $ctime"
    puthelp "privmsg mutante :Added to sql-db : url: $url chan: $lchan nick: $nick date: $ctime"
    mysqlclose $db
    mysqlclose $db
    </pre>

    i inserted this between row 51 - 57 in the original script.
    i inserted this between row 51 - 57 in the original script.
    replace <user> and <password> with your mysql user / pass.
    replace <user> and <password> with your mysql user / pass.

    Revision as of 21:22, 24 January 2005

    How to grab URLs from IRC channels ,save them to mysql, and display them on a webpage:


    urlgrab.tcl v0.7 by RufusDE <Thomas.Koester@rz.Uni-Osnabrueck.DE>
    

    already handles all the [RegularExpressions regex]'ing nicely, and because [HackerAttitude no problem should ever be solved twice], we just take this one to start with.

    It only logs to a text file though, but we have libmysqltcl installed (on s23.org) so we can add MySql commands like this:

    # added sql insert by mutante 
    set db [mysqlconnect -host localhost -user <user> -password <password> -db ircurls]
    mysqlexec $db "INSERT INTO urlgrab SET url="$url",chan="$lchan",nick="$nick",date=now()"
    puthelp "privmsg mutante :Added to sql-db : url: $url chan: $lchan nick: $nick date: $ctime"
    mysqlclose $db  
    

    i inserted this between row 51 - 57 in the original script. replace <user> and <password> with your mysql user / pass.

    You need to create a database "ircurls" with a table "urlgrab" or whatever you like, and the table structure is :

    Table structure for table `urlgrab`
    
    
    CREATE TABLE urlgrab (
      id int(5) unsigned NOT NULL auto_increment,
      url varchar(255) default NULL,
      nick varchar(32) default NULL,
      chan varchar(64) default NULL,
      date datetime NOT NULL default '0000-00-00 00:00:00',
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    

    Now to the output part / webinterface:

    You can use f.e. php (or perl) to read from mysql:

    Example:

    <?php
    
     $db = mysql_connect("localhost", "<user>", "<pass>");
    
     mysql_select_db("ircurls",$db);
    
     $result = mysql_query("SELECT * FROM urlgrab",$db);
     $urlnum=0;
    
     echo "<html><head></head><body><table border="1"><tr><th colspan="5" >s23 - IRC URL log</th></tr>
    ";
     echo "<tr><th>id</th><th>URL</th><th>nick</th><th>chan</th><th>date</th></tr>
    ";
    
    while ($myrow = mysql_fetch_row($result)) {
      
      printf("<tr><td>%s</td><td><a target="new" href="%s">%s</a></td><td>%s</td><td>%s</td><td>%s</td></tr>
    ", 
      $myrow[0], $myrow[1], $myrow[1], $myrow[2], $myrow[3], $myrow[4],$myrow[5]);
    
    $urlnum++;
    }
    echo "<tr><td colspan="5">Total URLs found: $urlnum</td></tr>";
    echo "</table></body></html>";
    
    

    which looks something like:

    http://mutante.s23.org/urllog.php

    While creating all this i found out Rufus also offers mysql_urlgrab.tcl , DOH!

    So you could as well just use that ,but i didnt check it out yet ;)

    Rufus is also the maintainer of libmysqltcl himself it seems, so he should know pretty good.

    mutante

    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.