stripit/plasma-comic/main.es.template
2009-05-07 20:49:14 +00:00

198 lines
4.8 KiB
Text

/*
* Copyright (C) 2007 Frédéric Forjan <fforjan@free.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License version 2 as
* published by the Free Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
function websiteUrl(id)
{
if(id ==0)
return URL + "index.php";
return URL + "index.php?strip=" + (id-1);
}
//init function
function init()
{
print("** Init() **");
//we get the current ID, 0 if its first time !
var currentID = comic.identifier;
print("current ID :"+ currentID);
//our first id is always 1...
comic.firstIdentifier = 1;
//so if we are on ID 0, first time so go to take the latest image !
if (currentID == 0) {
print("loading the latest image...");
comic.requestPage(websiteUrl(0), comic.User);
}
else
{
comic.requestPage(websiteUrl(currentID), comic.Page);
}
}
function getTitle(data)
{
var title = "";
var reTitle = new RegExp('<title>.* - (.+)</title>');
var match = reTitle.exec(data);
if ( match != null ) {
title = match[1];
print("title :" +title);
} else {
print("title not found !");
}
return title;
}
function getLastID(data)
{
var lastID = 0;
//we retrieve the last ID from nav link...
var re = new RegExp('id="navlast" href="index\\.php\\?strip=(\\d+)"');
var match = re.exec(data);
if ( match != null ) {
lastID = match[1];
print("last id = " +lastID);
}
else {
print("cannot parse last id");
}
return parseInt(lastID)+1;
}
function getNextID(data)
{
var nextID = 0;
//we retrieve the next ID from nav link...
var re = new RegExp('id="navnext" href="index\\.php\\?strip=(\\d+)"');
var match = re.exec(data);
if ( match != null ) {
nextID = match[1];
print("next id = " +nextID);
}
else {
print("cannot parse next id");
}
return parseInt(nextID)+1;
}
function getPrevID(data)
{
var prevID = 0;
//we retrieve the prev ID from nav link...
var re = new RegExp('id="navprev" href="index\\.php\\?strip=(\\d+)"');
var match = re.exec(data);
if ( match != null ) {
prevID = match[1];
print("prev id = " +prevID);
}
else {
print("cannot parse prev id");
}
return parseInt(prevID)+1;
}
function getAdditionnalText(data)
{
/** @FF remove the additionnal text since we cannot escape html char..today ?
var reAddText = new RegExp('<img id="strip" class="content" src="\./strips/.*png" alt="(.+)" />');
match = reAddText.exec(data);
if ( match != null ) {
var addText = match[1];
comic.additionalText = addText;
print("addText :" +addText);
} else {
print("addText not found !");
}
*/
}
function getAuthor(data)
{
var author ="<unknown>";
//we retrieve the last ID from nav link...
var re = new RegExp('<p id="author">(.+)</p>.+<p id="date">');
var match = re.exec(data);
if ( match != null ) {
author = match[1];
print("author = " +author);
}
else {
print("cannot parse last id");
}
return author;
}
function getImageUrl(data)
{
var url ="<unknown>";
//we retrieve the last ID from nav link...
var re = new RegExp('<img id="strip" class="content" src="(.+)" alt');
var match = re.exec(data);
if ( match != null ) {
url = URL + match[1];
print("img url = " +url);
}
else {
print("cannot parse image url");
}
return url;
}
function pageRetrieved(id, data)
{
if (id == comic.User) {
//find the most recent strip
var lastid = getLastID(data);
comic.identifier = lastid;
comic.requestPage(websiteUrl(lastid), comic.Page);
}
if( id == comic.Page) {
print("parsing page for id :" + comic.identifier);
//set the current url
comic.websiteUrl = websiteUrl(comic.identifier);
//retrieve the title
comic.title = getTitle(data);
//retrieve the last ID
comic.lastIdentifier = getLastID(data);
comic.nextIdentifier = getNextID(data);
comic.previousIdentifier = getPrevID(data);
//retrieve the author
comic.comicAuthor = getAuthor(data);
//load the image
comic.requestPage(getImageUrl(data),comic.Image);
}
}