Bookworm’s Archive 잡동사니 속에 숨겨진 보물 찾기

23Jan/11

인간 마법사 ‘로스린’ 85 레벨 달성!

대격변이 시작되지마자 컴퓨터마저 대격변을 일으키는 바람에 초반에 달리지 못 했습니다. 그 덕분인지 주력으로 하는 언데드 사제 '레핀'을 아주 한참 늦은 시기에 85 레벨을 달아버렸습니다. 85 레벨을 단 후에 이미 다른 분들은 한참 치고 나간터라 영웅 던전을 다녀야 한다던지 하는 의욕이 별로 안 생기더군요.

거기에 리치왕과 다르게 데스윙은 뭐랄까 전혀 흥미가 생기는 캐릭터가 아니었기에 레이드를 안 해도 그만이다라고 생각했습니다. 그래서 그냥 요리, 낚시 퀘스트나 하면서 있었고 주말에는 주로 얼라이언스를 플레이했습니다.

스톰윈드 왕국의 대성당을 배경으로 서 있는 로스린

얼라이언스에는 인간 마법사 '로스린' 딱 한 개만 키우고 있었는데요. 마법사라 그런지 사냥도 시원시원하고 일반 서버인지라 호드와 다툼도 없이 편하게 천천히 키울 수 있었습니다. 대략 작년 말부터 퀘스트를 시작했으니까 한달 정도 걸려서 85 레벨을 단 셈입니다.

예전에 호드와는 완전히 다른 이야기 전개를 가진 얼라이언스를 참 재미있게 했었는데, 이번 대격변은 좀 실망스러웠습니다. 마지막 지역은 '황혼의 고원' 빼고는 호드와 퀘스트가 거의 일치합니다. 퀘스트를 주는 NPC가 다르더라도 퀘스트 배경이나 달성 조건이 같은 경우가 거의 대부분이더군요.

그나마 황혼의 고원이 조금 다르기는한데 호드 쪽 퀘스트가 훨씬 더 흥미롭고 웅장합니다. 얼라이언스 쪽은 와일드해머 부족과 소소한 개인 이야기에 중심이 놓여있다 보니 그런듯 합니다.

호드와 얼라이언스 양 쪽의 이야기를 모두 마치고 나니 좀 힘이 쭉 빠지네요. 요즘 날이 춥다고 외부 활동도 거의 하지 않고 주말이면 방 안에만 있었는데, 일단 대격변에서 제일 하고 싶었던 것은 해놓았으니 이제 좀 바깥 바람도 쐬러 다니고 해야겠습니다.

8Jan/11

와우 인벤 애드온 업데이트 메일을 받아보기

월드 오브 워크래프트(이하 와우) 애드온 모음집을 편집하다보니 애드온의 새 업데이트를 빠르게 확인 할 필요가 있습니다. 외국 애드온들이 주로 모여있는 Curse Addons는 업데이트 프로그램을 제공하기 때문에 어렵지 않게 확인이 가능합니다.

하지만 국내 애드온들이 많이 모여있는 와우 인벤은 별도의 업데이트 프로그램을 제공하지 않기 때문에 매번 생각날 때마다 직접 들려서 업데이트를 확인해야 했습니다.

이 점이 너무 불편해서 애드온 업데이트를 살펴보다가 변화가 있으면 알려주는 간단한 스크립트를 만들었습니다.

#! /usr/bin/perl

use strict;
use warnings;

use WWW::Mechanize;
use Digest::MD5 qw(md5);
use POSIX;
use SDBM_File;
use Net::SMTP;

sub wowaddon_md5 {
    my $addonid = shift or return undef;

    my $mech = WWW::Mechanize->new;

    my $url = "http://wow.inven.co.kr/dataninfo/addonpds/filelist.iframe.php?mode=view&ridx=$addonid&count=1";

    $mech->get($url);

    my @link = $mech->links;

    my $md5 = Digest::MD5->new;

    foreach ( @link ) {
        $md5->add($_->text);
    }

    return $md5->hexdigest;
}

sub send_mail {
    my $host = shift or return;
    my $from = shift or return;
    my $to = shift or return;
    my $subject = shift or return;
    my $body = shift or return;

    my $smtp = Net::SMTP->new($host);

    $smtp->mail($from);
    $smtp->to($to);

    $smtp->data();
    $smtp->datasend("Subject: $subject\n");
    $smtp->datasend("\n");
    $smtp->datasend("$body\n");
    $smtp->dataend();

    $smtp->quit;
}

my @wowaddon = qw( 5094 5090 1907 );
my %dbm;
my $db_file = 'wowaddon.dbm';
tie %dbm, 'SDBM_File', $db_file, O_CREAT|O_RDWR, 0644;

tied %dbm or die "Can't open %db_file\n";

my @newaddon;

foreach ( @wowaddon ) {
    my $curmd5 = wowaddon_md5($_);
    if ( !exists $dbm{$_} ) {
        $dbm{$_} = $curmd5;
        next;
    }
    else {
        my $md5 = $dbm{$_};
        if ( $md5 ne $curmd5 ) {
            push @newaddon, $_;
        }
    }
}

untie %dbm;

if ( $#newaddon >= 0 ) {
    send_mail('localhost', 'sender@yourdomain.com',
            'youremail@yourdomain.com', 'New Wow Addons', "@newaddon");
}

exit 0;

사용 방법은 간단합니다. 53번 라인에 업데이트 여부를 알고 싶은 애드온의 고유 번호를 넣습니다. 고유 번호는 와우 인벤 애드온 자료실에서 해당 애드온의 URL에서 idx 값입니다. 괄호 안에 공백으로 여러개의 애드온 번호를 넣으시는 것도 가능합니다.

그리고 79, 80번 행에서 발신자, 수신자의 이메일 주소를 적당한 값으로 변경하시면 됩니다. 발신자의 이메일 주소가 이상 할 경우 메일이 제대로 발신되지 않거나 스팸으로 판정받을 수도 있으니 주의하시면 되겠습니다.

파일 수정이 끝났으면 cron을 이용해서 원하시는 간격으로 이 스크립트를 실행시켜 주시면 됩니다. 그러면 애드온에 어떤 변경 사항이 생기면 메일로 해당 애드온의 번호를 알려줍니다. 조금 손을 보시면 더 예쁜 메일을 보내실 수도 있을 듯 합니다.

끝으로 이 스크립트는 CPAN의 WWW::Mechanize 모듈을 사용합니다. 해당 모듈이 설치되어 있어야 동작하니 실행 전에 꼭 cpan으로 WWW::Mechanize을 설치 해주세요.

21Oct/10

사과나무 UI 트위터 계정을 열었습니다.

애드온 모음집의 특성상 업데이트가 잦을 수도 있는데 매번 블로그에 올려 알리기도 어렵고 해서 트위터 계정을 하나 열었습니다.

블로그에는 중요한 업데이트가 있는 경우만 글을 올리려고 합니다.

트위터를 사용하시는 분들은 팔로우 하시면 사과나무 UI 업데이트 공지를 손쉽게 확인하실 수 있습니다.

트위터 : @appletreeui

PS> 4.0.1a 나왔습니다. 다운로드는 설명서의 링크를 따라가시면 됩니다. http://bit.ly/appletreeui