#*******************************************
# MacVersion = 1.7
# MacDescription = Delete problem HTML tags and split long cache description
# MacAuthor = Evzen Supler (suplere)
# MacFileName = DeleteTags.gsk
# MacUrl =
#*******************************************
#Version:
#v.1.0 - uvodni release
#v.1.1 - oprava chyby pri rozdelovani listingu (rozpuleni znacky < a >)
#v.1.2 - oprava nezobrazeni prefixu u nerozdelenych kesi
#v.1.3 - pridana moznost smazani puvodniho vstupniho GPX
#v.1.4 - uprava formulare pro ypetnou kompatibilitu
#v.1.5 - zprovozneni volby Rozdel listing
#v.1.6 - upraveni bugu u rozdeleni znaku s diakritikou
#*******************************************
VERCHECK Version=7.5.2.10 (please update GSAK to the latest version (free) to run this macro - see http://gsak.net)
#Nacti setting
$DatFile = sysinfo("macropath") + "\" +"DeleteTags.xml"
IF FileExists($DatFile)
MacSettings Type=R File=$DatFile FileCheck=N
ELSE
$DelCas = "7900"
$RozdelListing = True
$InputFile = "D:\kese.gpx"
$OutputFile = "D:\kese_upr.gpx"
$PouzijPrefix = True
$OdstranSpan = True
$OdsranTable = True
$OdstranDiv = True
$OdstranFont = True
$OdstranA = True
$OdstranImg = True
$OdstranMarquee = True
$chbSmazOrig = False
MacSettings Type=S Vars=DelCas,RozdelListing,InputFile,OutputFile,PouzijPrefix,OdstranSpan,OdsranTable,OdstranDiv,OdstranFont,OdstranA,OdstranImg,OdstranMarquee,chbSmazOrig File=$DatFile
ENDIF
#Zobraz formular
While True
$FormExit = form($form,"")
BeginCase
Case $FormExit = "DelayExit"
Break
Case $FormExit = "SystemExit"
Cancel
Case $FormExit = "btnCancel"
Cancel
Case $FormExit = "btnOk"
Break
EndCase
EndWhile
#Uloz setting
MacSettings Type=S Vars=DelCas,RozdelListing,InputFile,OutputFile,PouzijPrefix,OdstranSpan,OdsranTable,OdstranDiv,OdstranFont,OdstranA,OdstranImg,OdstranMarquee,chbSmazOrig File=$DatFile
$Memo1 = ""
$DelkaCasti = Val($DelCas)
SET $Data = GetFile($InputFile)
IF Left($Data,7) = "*Error*"
Pause Msg="$Data"
Cancel
ENDIF
$regex = "(?s)"
$PocetWayp = RegExCount($regex,$data)
$AktualniW = 1
WHILE $AktualniW <= $PocetWayp
SHOWSTATUS Msg="Zpracovávám keš :$AktualniW z $PocetWayp"
#DEBUG Status=ON
$W = RegexData($RegExWayp,$data,$AktualniW)
IF RegExCount("Geocache",$W)>0
$RegEx="(?s)"
$PopisKese = RegexData($RegEx,$W,1)
$RegEx="(?s)"
$LongDesc= RegexData($RegEx,$W,1)
$PopisKese = RegExReplace("", $PopisKese, "")
$PopisKese = Replace("","",$PopisKese)
$RegEx="(?s).*?"
$PatickaKese = RegexData($RegEx,$W,1)
$PatickaKese = Replace("","",$PatickaKese)
$RegEx="(?s).*?"
$JmenoKese = RegexData($RegEx,$HlavickaKese,1)
$JmenoKese = Replace("","",$JmenoKese)
$JmenoKese = Replace("","",$JmenoKese)
$RegEx="(?s).*?"
$Name = RegexData($RegEx,$HlavickaKese,1)
$Name = Replace("GC","",$Name)
$Name = Replace("","",$Name)
$RegEx="(?s).*?"
$PrefixKese = RegexData($RegEx,$HlavickaKese,1)
$PrefixKese = SubStr($PrefixKese, 16,1)
#Odstraneni HTML tagu
#Odstraneni SPAN
IF $OdstranSpan
$PopisKese = RegExReplace("(?s)< *?(/|)?span.*?>",$PopisKese,"")
ENDIF
#Odstraneni TABLE
IF $OdsranTable
$PopisKese = RegExReplace("(?s)< *?(/|)?t(able|d|r).*?>",$PopisKese,"")
ENDIF
#Odstraneni DIV
IF $OdstranDiv
$PopisKese = RegExReplace("(?s)< *?(/|)?div.*?>",$PopisKese,"")
ENDIF
#Odstraneni FONT
IF $OdstranFont
$PopisKese = RegExReplace("(?s)< *?(/|)?font.*?>",$PopisKese,"")
ENDIF
#Odstraneni A
IF $OdstranA
$PopisKese = RegExReplace("(?s)< *?(/|)?a.*?>",$PopisKese,"")
ENDIF
#Odstraneni IMG
IF $OdstranImg
$PopisKese = RegExReplace("(?s)< *?(/|)?img.*?>",$PopisKese,"")
ENDIF
#Odstraneni Marque
IF $OdstranMarquee
$PopisKese = RegExReplace("(?s)< *?(/|)?marquee.*?>",$PopisKese,"")
ENDIF
#Rozdeleni GPX
$Hlava = $HlavickaKese
$Popis=$PopisKese
IF $RozdelListing
$DelkaListingu = Len($PopisKese)
$PocetCasti = Int ($DelkaListingu / $DelkaCasti) + 1
$Cast = 1
WHILE $Cast <= $PocetCasti
IF $PocetCasti > 1
$NoveJmenoKese = ""
IF $PouzijPrefix
$NoveJmenoKese = $NoveJmenoKese + $PrefixKese
ENDIF
$Popis1=Left($PopisKese, $DelkaCasti)
$RegEx="[^0-9a-zA-z&;.ácdéeínórštúuýžÁCDÉEÍNÓRŠTUÚÝŽ ]"
$Test = Right($Popis1, 3)
$II=1
WHILE (RegExCount($RegEx, $Test)>0) and ($Cast<>$PocetCasti)
$Popis1=Left($PopisKese, $DelkaCasti+$II)
$Test = Right($Popis1, 3)
$II = $II +1
# DEBUG Status=On
ENDWHILE
$PopisKese = Replace($Popis1,"",$PopisKese)
# IF
# $DelkaPopis1 = Len($Popis1)
# $Test = Left($Popis1, $DelkaPopis1-1)
# $Popis1 = $Test
# $DelkaPopis1 = Len($PopisKese)
# $Test = Right($PopisKese,$DelkaPopis1-2)
# $PopisKese = " "+$Test
#
# ENDIF
IF $Cast > 1
$Popis1 = " ....pokracovani" + $Popis1
$Memo1 = $Memo1 +"GC"+ $Name + ": "
IF $PouzijPrefix
$Memo1 = $Memo1 + $PrefixKese
ENDIF
$Memo1 = $Memo1 + "$Cast"+"-" + $JmenoKese+$_NewLine
IF $Cast<$PocetCasti
$Popis1 = $Popis1 + " ....pokracovani"
$Popis1 = Replace("& ....pokracovani","....pokracovani", $Popis1)
$Popis1 = Replace("< ","<", $Popis1)
$Popis1 = Replace("&l ","<", $Popis1)
$Popis1 = Replace("&a ","&", $Popis1)
$Popis1 = Replace("&am ","&", $Popis1)
$Popis1 = Replace("& ","&", $Popis1)
$Popis1 = Replace("> ",">", $Popis1)
$Popis1 = Replace("&g ",">", $Popis1)
ENDIF
$NoveJmenoKese = $NoveJmenoKese + "$Cast"+"-" + $JmenoKese+""
$NewCacheID="G"+"$Cast"+$Name+""
$RegEx="(?s).*?"
$Hlava = RegExReplace($RegEx, $Hlava, $NewName)
$NewURLName="G"+"$Cast"+$Name+""
$RegEx="(?s).*?"
$Hlava = RegExReplace($RegEx, $Hlava, $NewURLName)
$RegEx="(?s).*?"
$Hlava = RegExReplace($RegEx, $Hlava, $NoveJmenoKese)
$WPT=$_NewLine + $Hlava + $_NewLine + $LongDesc + $Popis1 +""
ELSE
$Popis1 = $Popis1 + " ....pokracovani"
$Popis1 = Replace("< ","<", $Popis1)
$Popis1 = Replace("&l ","<", $Popis1)
$Popis1 = Replace("> ",">", $Popis1)
$Popis1 = Replace("&g ",">", $Popis1)
$Popis1 = Replace("& ","", $Popis1)
$Popis1 = Replace("&a ","&", $Popis1)
$Popis1 = Replace("&am ","&", $Popis1)
$Popis1 = Replace("& ","&", $Popis1)
$NoveJmenoKese = $NoveJmenoKese + "-" + $JmenoKese+""
$RegEx="(?s).*?"
$Hlava = RegExReplace($RegEx, $Hlava, $NoveJmenoKese)
$WPT=$Hlava+$LongDesc+$Popis1+$_NewLine+""+$PatickaKese+$_NewLine
ENDIF
ELSE
IF $PouzijPrefix
$NoveJmenoKese = ""
$NoveJmenoKese = $NoveJmenoKese + $PrefixKese + "-" + $JmenoKese+""
$RegEx="(?s).*?"
$Hlava = RegExReplace($RegEx, $Hlava, $NoveJmenoKese)
ENDIF
$WPT=$_NewLine + $Hlava + $_NewLine + $LongDesc + $Popis+$_NewLine + ""+ $_NewLine + $PatickaKese
ENDIF
$OutputGPX = $OutputGPX + $WPT
$Cast = $Cast + 1
ENDWHILE
ELSE
IF $PouzijPrefix
$NoveJmenoKese = ""
$NoveJmenoKese = $NoveJmenoKese + $PrefixKese + "-" + $JmenoKese+""
$RegEx="(?s).*?"
$Hlava = RegExReplace($RegEx, $Hlava, $NoveJmenoKese)
ENDIF
$WPT=$_NewLine + $Hlava + $_NewLine + $LongDesc + $Popis+$_NewLine + ""+ $_NewLine + $PatickaKese
$OutputGPX = $OutputGPX + $WPT
ENDIF
$OutputGPX = $OutputGPX + $_NewLine
ELSE
$OutputGPX = $OutputGPX + $W + $_NewLine
ENDIF
$AktualniW = $AktualniW + 1
ENDWHILE
$OutputGPX = $OutputGPX + $_NewLine +""
$res = PutFile($OutputFile,$OutputGPX)
IF $chbSmazOrig
FILEERASE File=$InputFile OnError=Continue
ENDIF
IF $RozdelListing
While True
$FormExit = form($form1,"")
BeginCase
Case $FormExit = "SystemExit"
Cancel
Case $FormExit = "btnOk"
Cancel
EndCase
EndWhile
ENDIF
VarName=$form
#********************************************************************
# Form generated by GSAK form designer on ne 24-V-2009 21:28:49
#********************************************************************
Name = Form1
Type = Form
Caption = Nastavení úpravy GPX
Delay = 10
Height = 400
Visible = Yes
Width = 265
Name = Groupbox1
Type = Groupbox
Height = 159
Left = 0
Top = 206
Width = 247
Taborder = 1
Name = Groupbox2
Type = Groupbox
Height = 129
Left = 0
Top = 0
Width = 247
Taborder = 0
Name = Groupbox3
Type = Groupbox
Height = 75
Left = 0
Top = 130
Width = 247
Taborder = 2
Name = Label1
Type = Label
Container = Groupbox1
Enabled = Yes
Height = 13
Left = 0
Style = bold
Top = 6
Width = 153
Caption = Nastavení odstranění tagů
Name = OdstranSpan
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 26
Width = 15
Taborder = 0
Name = OdsranTable
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 44
Width = 15
Taborder = 1
Name = OdstranFont
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 80
Width = 15
Taborder = 2
Name = OdstranDiv
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 62
Width = 15
Taborder = 3
Name = OdstranA
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 98
Width = 15
Taborder = 4
Name = OdstranImg
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 116
Width = 15
Taborder = 5
Name = OdstranMarquee
Type = Checkbox
Container = Groupbox1
Height = 17
Left = 8
Top = 134
Width = 15
Taborder = 6
Name = Label2
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 28
Width = 69
Caption = Odstraň SPAN
Name = Label3
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 46
Width = 74
Caption = Odstraň TABLE
Name = Label4
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 64
Width = 58
Caption = Odstraň DIV
Name = Label5
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 82
Width = 69
Caption = Odstraň FONT
Name = Label6
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 100
Width = 47
Caption = Odstraň A
Name = Label7
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 118
Width = 60
Caption = Odstraň IMG
Name = Label8
Type = Label
Container = Groupbox1
Height = 13
Left = 26
Top = 136
Width = 94
Caption = Odstraň MARQUEE
Name = Label9
Type = Label
Container = Groupbox2
Height = 13
Left = 2
Style = bold
Top = 6
Width = 87
Caption = Nastavení cest
Name = Label10
Type = Label
Container = Groupbox2
Height = 13
Left = 2
Top = 24
Width = 97
Caption = Vstupní soubor GPX
Name = InputFile
Type = File
Container = Groupbox2
Height = 21
Left = 2
Top = 38
Width = 239
Taborder = 0
Name = OutputFile
Type = File
Container = Groupbox2
Height = 21
Left = 2
Top = 80
Width = 237
Taborder = 1
Name = Label11
Type = Label
Container = Groupbox2
Height = 13
Left = 2
Top = 62
Width = 102
Caption = Výstupní soubor GPX
Name = RozdelListing
Type = Checkbox
Container = Groupbox3
Height = 17
Left = 8
Top = 8
Width = 15
Taborder = 0
Name = PouzijPrefix
Type = Checkbox
Container = Groupbox3
Height = 17
Left = 8
Top = 26
Width = 15
Taborder = 1
Name = DelCas
Type = Edit
Container = Groupbox3
Height = 21
Left = 70
Top = 46
Width = 39
Taborder = 2
Name = Label12
Type = Label
Container = Groupbox3
Height = 13
Left = 24
Top = 10
Width = 62
Caption = Rozděl listing
Name = Label13
Type = Label
Container = Groupbox3
Height = 13
Left = 24
Top = 28
Width = 123
Caption = Použij prefix u názvu keše
Name = Label14
Type = Label
Container = Groupbox3
Height = 13
Left = 8
Top = 48
Width = 59
Caption = Délka části :
Name = btnOk
Type = Button
Container = Groupbox1
Height = 25
Left = 162
Top = 50
Width = 75
Taborder = 7
Caption = Uprav GPX
Name = btnCancel
Type = Button
Container = Groupbox1
Height = 25
Left = 162
Top = 82
Width = 75
Taborder = 8
Caption = Cancel
Name = chbSmazOrig
Type = Checkbox
Container = Groupbox2
Height = 17
Left = 6
Top = 106
Width = 21
Taborder = 2
Name = Label15
Type = Label
Container = Groupbox2
Height = 13
Left = 26
Top = 108
Width = 166
Caption = Smazat vstupní soubor po úpravě?
VarName=$form1
#********************************************************************
# Form generated by GSAK form designer on st 13-V-2009 08:10:38
#********************************************************************
Name = Progress
Type = Form
Height = 264
Width = 202
Name = Label1
Type = Label
Height = 13
Left = 12
Top = 0
Width = 155
Caption = Seznam rozdělených částí keší :
Name = Memo1
Type = Memo
Height = 177
Left = 0
Top = 16
Width = 185
Wrap = No
Taborder = 8
Name = btnOk
Type = Button
Height = 25
Left = 58
Top = 200
Width = 75
Taborder = 9
Caption = OK