{
return $file.read(%c,"firstTime",$false)
}
+
}
}
--- /dev/null
+alias(ktm::classes::ftp)
+{
+ class(ktm::ftp,ftp)
+ {
+ commandFinishedEvent()
+ {
+ //echo $0 $1 $2
+ if ($1=="Downloaded") @$emit("downloaded")
+ }
+ dataTransferProgressEvent()
+ {
+ // echo downloaded $0/$1
+ }
+ }
+}
+
{
get()
{
+ //echo geto
return $$->$http::get($0,$1)
}
page()
}
readyReadEvent()
{
+ //echo ready read $0 and
@%page .=@$readAll()
}
dataReadProgressEvent()
{
+ //echo data progress $0 $1
@$emit(dataReadProgress,$0,$1,@$currentId())
}
- stateChangedEvent()
- {
- @$emit(stateChanged,$0)
- }
requestFinishedEvent()
{
+ //echo finished $0
@$emit(finished,$0)
}
- responseHeaderReceivedEvent()
- {
- }
-
}
}
-
}
destructor()
{
+ if ($objects.exists(@%ftp)) delete @%ftp
if ($objects.exists(@%kvinet_http)) delete @%kvinet_http
delete @%themesList
if ($objects.exists(@%mainDialog)) delete @%mainDialog
delete @%kvinet_http
@%kvinet_http=$new(ktm::http,$$)
@%kvinet_http->$setHost("www.kvirc.net")
- echo new http
$ktm::functions::createInfoThemesList(@%page,@%themesList)
@$getRemotePreviews
objects.connect @%kvinet_http dataReadProgress @%mainDialog SETpb
objects.connect $$ done @%mainDialog done
objects.connect @%mainDialog closing $$ closeScript
+ objects.connect @%mainDialog install $$ loadTheme
@%mainDialog->$init(@%themesList)
@%mainDialog->$show()
}
%pixmap->$scale(@%thumb_width,@%thumb_height,"KeepAspectRatio","Smooth")
return %pixmap
}
-
+ loadTheme()
+ {
+ %theme=@%themesList->$current()
+ if (!@%ftp)
+ {
+ @%ftp=$new(ktm::ftp)
+ objects.connect @%ftp downloaded $$ installTheme
+ }
+ @%Ftp->$connect(ftp.kvirc.de)
+ @%Ftp->$login("","")
+ @%Ftp->$cd(pub/kvirc/themes/)
+ @%Ftp->$get(%theme->%remotefile,$file.localdir(tmp/themetemp.kvt))
+ }
+ installTheme()
+ {
+
+ // echo install theme
+ @%Ftp->$close()
+ theme.install $file.localdir(tmp/themetemp.kvt)
+ // echo installed
+ }
firstTimeRun()
{
if (!$file.exists($file.localdir("pics/ktm/previews")))
}
}
-
{
%classesaliases[]=$array(ktm::classes::config,\
ktm::classes::http,\
+ ktm::classes::ftp,\
ktm::classes::config,\
ktm::classes::themeslist,\
ktm::classes::main,\
}
}
-
alias(ktm::classes::themeslist)
{
- objects.killClass -q ktn::themesList
class(ktm::themesList,list)
{
constructor()
%themeright_index=$str.find(%page_filtered,"\<div class\=\"left\"\>",$(%count+1))
if (%themeright_index==-1) break
%theme=$str.mid(%page_filtered,%to,$(%themeright_index-%to))
- %themes->$append($ktm::functions::createThemeInfo(%theme))
+ %theme_obj=$ktm::functions::createThemeInfo(%theme)
+ %themes->$append(%theme_obj)
+
%count++
%anticrash++
if (%anticrash>100) break
%filename=$str.grep("<a href=\"img/themes/(theme_[az-AZ\-]*.(png|jpg))",%str,rp)[1]
%theme->%preview_filename=%filename
%theme->%shot=$file.localdir("pics/ktm/previews/%filename")
- %theme->%downloadlink=$str.grep("ftp:\/\/([^\"]+)",%str,rp)[1]
+ %theme->%remotefile=$str.token(4,"/",$str.grep("ftp:\/\/([^\"]+)",%str,rp)[1])
if ($str.findfirst(%str,"mailto:")!=-1) %desc[]=$str.grep("\"desc\"><p><b>[^<]+</b><a [^>]+>([^<]+)</a><br /><b>[^<]+</b>([^<]+)",%str,rp)
else %desc[]=$str.grep("\"desc\"><p><b>[^<]+</b>([^<]+)<br /><b>[^<]+</b>([^<]+)",%str,rp)
%theme->%author= %desc[1]
+ if ($str.right(%desc[2],1)!=".") %desc[2].="."
%theme->%description= %desc[2]
return %theme
//%theme->%description=$str.grep("<b>Description: </b>([az-AZ \-:\)_0123456789]+)<br />",%str,rp)[1]
}
-