Create a new article
Write your page title here:
We currently have 3185 articles on s23. Type your article name above or click on one of the titles below and start writing!



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',

Now to the output part / webinterface: You can use f.e. php (or perl) to read from mysql:


 $db = mysql_connect("localhost", "<user>", "<pass>");


 $result = mysql_query("SELECT * FROM urlgrab",$db);

 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]);


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