Asfihani Dicatet Ben Ora Lali™ (literally mean: dicatat biar tidak lupa)

Notifikasi Mangastream menggunakan BASH

Apakah Anda penggemar serial komik (manga) Naruto dan One Piece ?
Apakah capek mereload browser Anda untuk menanti seri terakhir dari Mangastream ?
Jika jawabannya YA, maka hanya dengan beberapa baris skrip BASH dibawah ini mungkin bisa membuat Anda lebih tenang di akhir pekan tanpa berlama-lama didepan monitor untuk melihat apakah sudah ada seri terakhir atau belum :)

Skrip ini akan memeriksa apakah seri terbaru sudah ada dan memberitahu Anda melaulu email. Sederhana bukan? Yang dibutuhkan adalah links, MTA (misalnya: Postfix, Sendmail, qmail, Exim dll), akses crontab dan tentunya sistem operasi kesayangan Anda (Linux/BSD). Jangan lupa untuk membuat direktori /etc/mangadata serta bikin file /etc/mangadata/Naruto.last dan /etc/mangadata/One_Piece.last yang berisi data terakhir seri manga ybs. Pastikan user yang menjalankan crontab bisa menulis ke direktori tersebut.

#!/bin/bash
#
# Description : Skrip notifikasi serial manga terbaru dari Mangastream
# Author      : Asfihani <asfihani@gmail.com>
# License     : GPL
 
# daftar penerima email notifikasi, pisahkan dengan spasi
RECIPIENTS="asfihani@domain.tld asfik@otherdomain.tld"
MANGA_LIST="Naruto One_Piece"
URL="http://twitter.com/mangastream"
STRING="is out"
 
for MANGA in $MANGA_LIST; do
        # biasanya manga seri baru hari Kamis sudah ada, hapus lock file pada cycle pertama
	if [ `date +%u` == "4" ] && [ `date +%H%M` == "0000" ]; then
		rm -rf /etc/mangadata/$MANGA.lck
	fi
 
        # periksa file lock
	if [ ! -f /etc/mangadata/$MANGA.lck ]; then
                # periksa file yang berisi data seri terakhir
		if  [ -f /etc/mangadata/$MANGA.last ]; then
			LAST_EPISODE=$(cat /etc/mangadata/$MANGA.last)
			let CURRENT_EPISODE=$LAST_EPISODE+1
 
                        MANGA_TITLE=$(echo $MANGA | sed -e "s/_/ /g")
			OUTPUT=$(links -dump $URL | grep -A1 "$MANGA_TITLE $CURRENT_EPISODE $STRING")
 
			if [ "$OUTPUT" != "" ]; then
                                SUBJECT="[MANGABOT] $MANGA_TITLE Chapter $CURRENT_EPISODE sudah keluar"
				echo $OUTPUT | mail -s $SUBJECT $RECIPIENTS
                                # update seri terakhir
				echo $CURRENT_EPISODE > /etc/mangadata/$MANGA.last
                                # buat file lock, agar looping selanjutnya dilewati
				touch /etc/mangadata/$MANGA.lck
			fi
		fi
	fi
done


Buat entry di crontab, misalnya untuk memeriksa setiap 15 menit dari hari Kamis s/d Minggu :

*/15 * * * 4-7 /etc/mangadata/check_manga.sh > /dev/null 2>&1

Kelemahan skrip ini adalah jika Mangastream merubah pola string maka skrip mungkin tidak akan bekerja sebagaimana yang diharapkan :)

Random Posts:




2 Comments

1

Posted by wynstNo Gravatar on 11 August 2010 05:08:37 WIB
Using Google Chrome Google Chrome 5.0.375.125 on Linux Linux

Bisa juga digabungkan dengan script Ruby berikut untuk mengunduh secara otomatis :) http://github.com/wynst/mangas. Alternatif untuk mendapatkan update manga terbaru yang anda ikuti dengan mendaftar sebagai member di http://www.mangaupdates.com/releases.html dan menambahkan setiap manga yang diinginkan ke Reading List.


2

Posted by AsfihaniNo Gravatar on 11 August 2010 09:08:27 WIB
Using Safari Safari 533.17.8 on Mac OS X Mac OS X 10.6.4

Terima kasih mas Willy atas infonya, mesti dicoba nih :)


Leave a Comment