All pastes #840763 Raw Edit

IRC XML Parser and Announcer

public text v1 · immutable
#840763 ·published 2008-01-03 23:37 UTC
rendered paste body
#!/bin/bash

FEED1="http://animesuki.com/rss.php"
FEED2="http://rss.a.scarywater.net/"

NEW1="/home/infinity/feeds/new"
new1="/home/infinity/feeds/new-p"
old1="/home/infinity/feeds/old-p"

NEW2="/home/infinity/feeds/new2"
new2="/home/infinity/feeds/new2-p"
old2="/home/infinity/feeds/old2-p"

while true
do

wget -o /dev/null -O $NEW1 $FEED1
wget -o /dev/null -O $NEW2 $FEED2

/home/infinity/bin/parse $NEW1 >> $new1
/home/infinity/bin/parse $NEW2 >> $new2

if [[ `diff $new1 $old1` || `diff $new2 $old2` ]]
then
diff $new1 $old1
diff $new2 $old2
fi
rm $NEW1 $NEW2
mv $new1 $old1
mv $new2 $old2
sleep 15m
done
exit




#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define START "<title>"
#define END "</title>"


void walk(char * xml);

int main(int argI, char ** argC)
{
        struct stat * fileinfo = malloc(sizeof(struct stat));
        int fd;
        char * BUF;

        fd = open(argC[1], O_RDONLY);
        fstat(fd, fileinfo);
        BUF = malloc(fileinfo->st_size);
        read(fd,BUF,fileinfo->st_size);
//      write(1,BUF,fileinfo->st_size);
        close(fd);
        walk(BUF);
        free(fileinfo);
        free(BUF);
        return 0;
}

void walk(char * xml)
{
        char * xmltext = xml;
        char * start;
        char * end;
        while( xmltext != NULL )
        {
                start = strstr(xmltext,START);
                end = strstr(xmltext,END);
                if(start == NULL) return;
                xmltext = start + strlen(START);
                *end = '\0';

                printf("%s\n", xmltext);
                xmltext = end + strlen(END);
        }
}