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



    s23
    3,185Articles

    TclScripts/UrlGrab

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

    urlgrab.tcl v0.7 (by RufusDE <Thomas.KoesterATrz.Uni-Osnabrueck.DE>)
    already handles all the regex'ing nicely, and because no problem should ever be solved twice, we just take this one to start with.

    Note: 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;
    
     while ($myrow = mysql_fetch_row($result)) {
      
      printf("%s <a target="new" href="%s">%s</a> %s %s %s 
    ", 
      $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, if you play with it, looks something like:
    http://mutante.s23.org/urllog.php , (Which is now a broken link)
    While creating all this i found out Rufus already 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


    Related: Eggdrop | MySQL

    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.