]> git.pld-linux.org Git - packages/rpm-build-tools.git/commitdiff
- use rss feeds for sourceforge processing (do we have anyone brave to rewrite pldnot...
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Mon, 27 Jan 2014 17:16:40 +0000 (18:16 +0100)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Mon, 27 Jan 2014 17:16:40 +0000 (18:16 +0100)
pldnotify.awk

index 935f41808747d52df9ec0ff03273c2fde50a19bc..6cb96c3005967084fa20899328a62a2400d9c89c 100755 (executable)
@@ -232,12 +232,11 @@ function get_links(url,filename,   errno,link,oneline,retval,odp,wholeodp,lowero
        tmpfile = mktemp()
        tmpfileerr = mktemp()
 
-       if (url ~ /^http:\/\/(download|dl)\.(sf|sourceforge)\.net\//) {
+       if (url ~ /^http:\/\/(download|downloads|dl)\.(sf|sourceforge)\.net\//) {
                # http://downloads.sourceforge.net/project/mediainfo/source/mediainfo/
-               gsub("^http://(download|dl)\.(sf|sourceforge)\.net/", "", url)
-
+               gsub("^http://(download|downloads|dl)\.(sf|sourceforge)\.net/", "", url)
                gsub("/.*", "", url)
-               url = "http://sourceforge.net/projects/" url "/files/"
+               url = sf_url(url)
                d("sf url, mungled url to: " url)
 
        } else if (url ~ /^http:\/\/(.*)\.googlecode\.com\/files\//) {
@@ -375,7 +374,11 @@ if (USE_PERL) {
        d("Reponse read done...")
        system("rm -f " tmpfile)
 
-       while (match(wholeodp, /<([aA]|[fF][rR][aA][mM][eE])[ \t][^>]*>/) > 0) {
+       # MATCH one of these:
+       #while (match(wholeodp, /<([aA]|[fF][rR][aA][mM][eE])[ \t][^>]*>/) > 0) {
+       #while (match(wholeodp, /<link>[^<]*<\/link>/) > 0) {
+
+       while (match(wholeodp, /(<link>[^<]*<\/link>|<([aA]|[fF][rR][aA][mM][eE])[ \t][^>]*>)/) > 0) {
                d("Processing links...")
                odp = substr(wholeodp,RSTART,RLENGTH);
                wholeodp = substr(wholeodp,RSTART+RLENGTH);
@@ -446,6 +449,17 @@ if (USE_PERL) {
 
                        retval = (retval " " link)
                        d("href(): " link)
+               } else if (lowerodp ~ /<link>/) {
+                       link=lowerodp
+                       sub("/<link>/", link)
+                       sub("/\/download<\/link>/", link)
+
+                       if (link_seen(link)) {
+                               link=""
+                               continue
+                       }
+
+                       retval = (retval " " link)
                } else {
                        # <a ...> but not href - skip
                        d("skipping <a > without href: " odp)
@@ -595,6 +609,15 @@ function process_source(number, lurl, name, version) {
        }
 }
 
+function sf_url(sf_project) {
+       sf_idurl="http://sourceforge.net/api/project/name/" sf_project "/json"
+       cmd = "wget -t 2 -T 45 -q -O - " sf_idurl " |  awk -F: '/\"id\":/ { gsub(\",\", \"\", $2); print $2 } '"
+       d("sf_url_cmd: " cmd)
+       cmd | getline sf_id
+       d("sf_url_id: " sf_id)
+       return "http://sourceforge.net/api/file/index/project-id/" sf_id "/mtime/desc/limit/20/rss"
+}
+
 function rss_upgrade(name, ver, url, regex, cmd) {
        regex = "s/.*<title>" regex "<\/title>.*/\\1/p"
        cmd = "wget -t 2 -T 45 -q -O - " url " | sed -nre '" regex "' | head -n1"
This page took 0.120188 seconds and 4 git commands to generate.