You can make it show Sunday strips in a larger, dedicated frame by clicking it.
You will need the nconvert.exe file in the script directory. If you download the addon from within Gamers.IRC, it is included anyway.
Code: Select all
; Copyright © 2008-2018 by Gamers.Interactive. All Rights Reserved.
; Contact via world wide web (http://gamersirc.net) or e-mail (contact1@gamersirc.net)
; Feel free to modify and distribute this code as long as it fits to the GNU General Public License (http://gnu.org/licenses/gpl.html)
; which is included within Gamers.IRC.
; Forum: http://forum.gamersirc.net/viewtopic.php?f=34&t=1574
dialog dlgSonntag {
title "Sunday Strip - xx.xx.xxxx"
size -1 -1 625 456
option pixels
icon 1, 2 4 620 420
button "Close", 2, 1 429 624 25, default flat ok cancel
}
on *:dialog:dlgSonntag:init:*:{
did -g dlgSonntag 1 $qt($scriptdirgarfield.bmp)
dialog -t dlgSonntag $replace($dialog(dlgSonntag).title,$gettok($dialog(dlgSonntag).title,4,32),$+($gettok($did(dlgGarfield,3).text,1,47),.,$gettok($did(dlgGarfield,3).text,2,47),.,$gettok($did(dlgGarfield,3).text,3,47)))
}
alias -l grfSonntag {
if ($dialog(dlgSonntag)) {
did -g dlgSonntag 1 $qt($scriptdirgarfield.bmp)
dialog -t dlgSonntag $replace($dialog(dlgSonntag).title,$gettok($dialog(dlgSonntag).title,4,32),$+($gettok($did(dlgGarfield,3).text,1,47),.,$gettok($did(dlgGarfield,3).text,2,47),.,$gettok($did(dlgGarfield,3).text,3,47)))
}
else {
dialog -md dlgSonntag dlgSonntag
}
}
; ========================================
dialog dlgGarfield {
title "Daily Garfield"
size -1 -1 632 246
option pixels
icon 1, 6 23 620 195
text "Daily Garfield - xx.xx.xxxx:", 2, 6 4 226 16
edit "", 3, 123 222 200 21
text "Date (dd/mm/yyyy):", 4, 6 225 113 16
button "View comic", 5, 325 223 84 20, default flat
button "<", 6, 586 223 20 20, flat
button ">", 7, 607 223 20 20, flat
button "close", 8, 551 1 75 20, flat ok
button "visit website", 9, 464 1 85 20, flat
text "Status", 11, 280 3 195 16, center
link "view online", 12, 440 226 76 16
}
alias -l grfShow {
if ($sock(scGarfield)) { sockclose scGarfield }
set -u20 %grfStartFile 0
.timer 1 1 did -ra dlgGarfield 2 $replace($did(dlgGarfield,2).text,$gettok($did(dlgGarfield,2).text,4,32),$+($gettok(%grfDate,1,47),.,$gettok(%grfDate,2,47),.,$gettok(%grfDate,3,47))) $+ :
if ($exists($qt($scriptdirgarfield.gif))) { .remove $qt($scriptdirgarfield.gif) }
did -ra dlgGarfield 11 ... downloading ...
sockopen -e scGarfield d1ejxu6vysztl5.cloudfront.net 443
}
alias -l grfCheckDate {
return $regex($did(dlgGarfield,3).text, /\d\d\/\d\d\/\d\d\d\d/)
}
on *:dialog:dlgGarfield:init:*:{
did -ra $dname 2 $replace($did(2).text,xx.xx.xxxx,$+($gettok($date,1,47),.,$gettok($date,2,47),.,$gettok($date,3,47)))
did -ra $dname 3 $date
did -r $dname 11
did -b $dname 7
did -h $dname 12
if (!$exists($qt($scriptdirnconvert.exe))) {
var %grfErrorMsg = $input(NConvert could not be found! $+ $crlf $+ No download will happen. $+ $crlf $+ $crlf $+ You can download NConvert from the following website: $+ $crlf $+ http://www.xnview.com/en/nconvert/, oi, Information,)
if (%grfErrorMsg) {
if ($exists($qt($scriptdirgarfield.bmp))) {
did -g $dname 1 $qt($scriptdirgarfield.bmp)
}
else {
dialog -x dlgGarfield
}
halt
}
}
set %grfDate $date
set %grfFileSize 0
grfShow
}
on *:dialog:dlgGarfield:close:*:{
if ($sock(scGarfield)) { sockclose scGarfield }
if (%grfDate) { unset %grfDate }
if (%grfFileSize) { unset %grfFileSize }
}
on *:dialog:dlgGarfield:edit:3:{
if (!$did(3).text) { did -ra $dname 3 $date }
if (!$grfCheckDate) { did -b $dname 5-7 | did -h $dname 12 }
else { did -e $dname 5-7 | did -v $dname 12 }
}
on *:dialog:dlgGarfield:sclick:*:{
if ($did == 1) {
if ($asctime($ctime($did(3).text),ddd) == Sun && $exists($qt($scriptdirgarfield.bmp)) && $did($dname,11).text != No today's Garfield yet.) {
grfSonntag
}
}
elseif ($did == 5) {
if ($did(3).text) {
if ($regex($did(3).text, /\d\d\.\d\d\.\d\d\d\d/)) {
; xx.xx.xxxx
did -ra 3 $replace($did(3).text,.,/)
}
elseif ($regex($did(3).text, /\d\d\.\d\d\.\d\d/)) {
; xx.xx.xx
did -ra 3 $replace($replace($did(3).text,.,/),$gettok($replace($did(3).text,.,/),3,47),$iif($gettok($replace($did(3).text,.,/),3,47) > 90,19,20) $+ $gettok($replace($did(3).text,.,/),3,47)
}
elseif ($regex($did(3).text, /\d\d\/\d\d\\/\d\d/)) {
; xx/xx/xx
did -ra 3 $replace($did(3).text,$gettok($did(3).text,3,47),$iif($gettok($did(3).text,3,47) > 90,19,20) $+ $gettok($did(3).text,3,47))
}
elseif (!$regex($did(3).text, /\d\d\/\d\d\/\d\d\d\d/)) {
did -ra $dname 11 Invalid date!
.timer 1 5 did -r $dname 11
halt
}
set %grfDate $did(3).text
grfShow
}
}
elseif ($did == 6) {
var %grfTag = $gettok($did(3).text,1,47)
var %grfMnt = $gettok($did(3).text,2,47)
var %grfJhr = $gettok($did(3).text,3,47)
if (%grfTag == 1) {
%grfTag = $iif(%grfMnt == 01 || %grfMnt == 02 || %grfMnt == 04 || %grfMnt == 06 || %grfMnt == 09 || %grfMnt == 11,31,$iif(%grfMnt == 03,$iif($calc(%grfJhr % 4) == 0,29,28),30))
if (%grfMnt == 1) {
dec %grfJhr
%grfMnt = 12
}
else {
dec %grfMnt
}
}
else {
dec %grfTag
}
did -ra $dname 3 $iif($len(%grfTag) == 1,0 $+ %grfTag,%grfTag) $+ / $+ $iif($len(%grfMnt) == 1,0 $+ %grfMnt,%grfMnt) $+ / $+ %grfJhr
set %grfDate $did(3).text
grfShow
}
elseif ($did == 7) {
var %grfTag = $gettok($did(3).text,1,47)
var %grfMnt = $gettok($did(3).text,2,47)
var %grfJhr = $gettok($did(3).text,3,47)
if (%grfTag == 31) {
if (%grfMnt == 12) {
inc %grfJhr
%grfMnt = 1
}
else {
inc %grfMnt
}
%grfTag = 1
}
else {
inc %grfTag
}
did -ra $dname 3 $iif($len(%grfTag) == 1,0 $+ %grfTag,%grfTag) $+ / $+ $iif($len(%grfMnt) == 1,0 $+ %grfMnt,%grfMnt) $+ / $+ %grfJhr
set %grfDate $did(3).text
grfShow
}
elseif ($did == 9) {
run https://www.garfield.com
}
elseif ($did == 12) {
run https://d1ejxu6vysztl5.cloudfront.net/comics/garfield/ $+ $right($gettok($did(3).text,3,47),4) $+ / $+ $right($gettok($did(3).text,3,47),4) $+ - $+ $gettok($did(3).text,2,47) $+ - $+ $gettok($did(3).text,1,47) $+ .gif
}
}
; ========================================
on *:sockopen:scGarfield:{
if ($sockerr || !%grfDate) { did -ra dlgGarfield 11 Download failed! | halt }
sockwrite -n $sockname GET /comics/garfield/ $+ $right($gettok($did(dlgGarfield,3).text,3,47),4) $+ / $+ $right($gettok($did(dlgGarfield,3).text,3,47),4) $+ - $+ $gettok($did(dlgGarfield,3).text,2,47) $+ - $+ $gettok($did(dlgGarfield,3).text,1,47) $+ .gif HTTP/1.1
sockwrite -n $sockname Host: d1ejxu6vysztl5.cloudfront.net
sockwrite -n $sockname User-Agent: Mozilla/5.0 (X11; FreeBSD x86_64; rv:42.0) Gecko/20100101 Firefox/42.0
sockwrite -n $sockname $crlf
}
on *:sockread:scGarfield:{
if (%grfStartFile != 1) {
var %x
sockread %x
if (Not Found isin %x) {
did -ra dlgGarfield 11 No today's Garfield yet.
sockclose scGarfield
}
if (Content-Length isin %x) { %grfFileSize = $gettok(%x,2,32) }
if (%x == $null) { %grfStartFile = 1 }
}
else {
var &tmpGarfield
sockread &tmpGarfield
bwrite $qt($scriptdirgarfield.gif) -1 -1 &tmpGarfield
if ($file($qt($scriptdirgarfield.gif)).size == %grfFileSize) {
sockclose scGarfield
did -ra dlgGarfield 11 ... converting ...
if ($exists($qt($scriptdirgarfield.bmp))) { .remove $qt($scriptdirgarfield.bmp) }
run -n $qt($scriptdirnconvert.exe) -quiet -D -out bmp $qt($scriptdirgarfield.gif)
.timer 1 3 did -rg dlgGarfield 1 $qt($scriptdirgarfield.bmp)
.timer 1 3 did -r dlgGarfield 11
if ($ctime($did(dlgGarfield,3).text) < $ctime($date)) { did -e dlgGarfield 7 }
else { did -b dlgGarfield 7 }
did -v dlgGarfield 12
}
}
}
; ========================================
alias garfield { dialog $iif($dialog(dlgGarfield), -x, -md) dlgGarfield dlgGarfield }
menu channel,status,query,menubar {
-
Daily Garfield:garfield
}