M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2007年7月17日 14:01

廃棄されたAdobeのアップデートファイル一覧ページ

このエントリーをはてなブックマークに追加 mixiチェック

http://www.adobe.com/jp/support/downloads/new.html

のページを RSS 化している、

adobe.com/jp - Downloadable Files
http://dtpwiki.jp/rss/adobecojpnewdownloads.xml

が、更新とまっとる。おそらく、アドビに廃棄されたんだと思われ。

こんなコードで生成していました。

#!/usr/bin/perl -w
 
use strict;
use LWP;
use XML::RSS;
use HTML::Entities;
use utf8;
use Encode;
 
my $url = 'http://www.adobe.com/jp/support/downloads/new.html';
 
my @headers = ( 
  'User-Agent' => 'DTPWiki.jp html2RSSbot(http://dtpwiki.jp/rss/adobecojpnewdownloads.xml)',
);
my $browser = LWP::UserAgent->new;
my $response = $browser->get($url, @headers);
exit 1 unless $response->is_success;
my $html = decode('UTF-8',$response->content);
 
$html =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
 
my $rss = XML::RSS->new;
 
	$rss->add_module(
		prefix=>'content',
		uri=>'http://purl.org/rss/1.0/modules/content/'
		);
 
$rss->channel(
    title    => 'adobe.com/jp - Downloadable Files',
    link     => $url,
    description => 'adobe.com/jp - Downloadable Files',
    language => 'ja',
    dc => {
      publisher    => 'adobe.com/jp',
      contributor  => 'DTPWiki.jp',
    },
    syn => {
      updatePeriod => 'weekry',
      updateFrequency => '1',
    },
);
 
my ($filesize,$link,$date,$title,$description,$platform);
 
my (%item,@items);
 
$html =~ s|.+?<!--TABLE-->||s;
$html =~ s|<div id="globalfooter">.+?||s;
 
$html =~ s|\n||g;
$html =~ s|> +?<|><|g;
 
$html =~ s|<!-- rowstart:spacer5 -->||g;
$html =~ s|<!-- rowend:spacer5 -->||g;
$html =~ s|<!-- rowstart:interline -->||g;
$html =~ s|<!-- rowend:interline -->||g;
$html =~ s|<!-- rowstart:content -->||g;
$html =~ s|<!-- rowend:content -->||g;
$html =~ s|<!-- rowstart:border -->||g;
$html =~ s|<!-- rowend:border -->||g;
$html =~ s|<!-- rowstart:spacer15 -->||g;
$html =~ s|<!-- rowend:spacer15 -->||g;
 
$html =~ s| width="585">|>|g;
$html =~ s|colspan="7" height="30" nowrap="NOWRAP">|colspan="7" height="30">|g;
$html =~ s|<td bgcolor="#cccccc" class="size2" colspan="7" height="30"><a href="(.+?)"><strong>(.+?)</strong></a></td>|<td bgcolor="#cccccc" class="size2" colspan="7" height="30"><strong><a href="$1">$2</a></strong></td>|g;
$html =~ s|<td bgcolor="#cccccc" class="size2" colspan="." height="30">|<!-- separator --><td bgcolor="#cccccc" class="size2" colspan="7" height="30">|g;
$html =~ s|<a class="size1" href="|<a href="|g;
$html =~ s|<td align="right" class="size1" width="100"></td><td width="15"></td>||;
 
$html =~ s|$|<!-- separator -->|;
 
#print $html;
#exit;
 
(my $Regex = <<'REGEX') =~ tr/\n//d;
<td align="right" class="size1" width="100">(.+?)</td>.*?
<td class="size1" width="350"><a.+?href="(.+?)".*?>(.+?)</a>.*?
<td class="size1" width="70">(.+?)</td>
REGEX
 
my $i;
 
while($html =~ m|<td bgcolor="#cccccc" class="size2" colspan="." height="30"><strong><a.+?>(.+?)</a>(.+?)<!-- separator -->|gsio) {
  
  my $category = $1;
  my $html2    = $2;
  
  $platform = '[Mac]' if ($category =~ m/Mac/);
  $platform = '[Win]' if ($category =~ m/Win/);
  
  
  while ($html2 =~ m/$Regex/gsi) {
  
    $date = $1;
    $link = $2;
    $title = $3;
    $filesize =$4;
    my $date2 = "20$date";
    $link = "/jp/support/downloads/$link" unless ($link =~m|/|);
    $platform = '[Mac]' if ($link =~ m/mac/);
    $platform = '[Win]' if ($link =~ m/win/);
    
    push @items ,{
      title => normalize2("$platform$title"),
      description => normalize("[$date] $title ($filesize)"),
      link => encode_entities("http://www.adobe.com$link"),
      date => datecheck($date),
      content => "<![CDATA[$description]]>"
    }
  }
}
 
my @sort = sort { $b->{date} cmp $a->{date} } @items;
 
foreach my $item (@sort) {
    
    $description = $item->{'description'};
    $rss->add_item(
        link  => $item->{'link'},
        title => $item->{'title'},
        description => $description,
        dc => {
          date       => $item->{'date'},
        },
        content => {
          encoded => "<![CDATA[$description]]>",
        },
    );
}
 
if ($ENV{GATEWAY_INTERFACE}) {
    require CGI;
    print CGI::header('text/xml; charset=utf-8');
}
 
print $rss->as_string();
 
sub normalize {
    local $_ = shift;
    tr/ \r\n//d;
    return $_;
}
 
sub normalize2 {
    local $_ = shift;
    tr/ \r\n//d;
    s/<(?:[^>'"]*|(['"]).*?\1)*>//gs;
    return $_;
}
 
sub datecheck {
    local $_ = shift;
    tr#/#-#d;
    s/^/20/; 
    return $_;
}

ちなみに、今はこっちみたい。

http://www.adobe.com/jp/downloads/updates/

そのうち直します。

投稿 大野 義貴 [DTP] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2144

コメントする