@echo off
setlocal
::Program uses tesseract, ImageMagick convert, portable perl, gnu awk, - please respect the relevant licenses
::License: Thanksware - free for non-commercial use, drop a note if you use it
::Date: July 2015, update Feb 2016, July 2016, August 2019
::Version: 2.8 
::Author: Heino Falcke, 50226 Frechen, h.falcke@astro.ru.nl
::Mit Dank an G.Faber für kleine Anpassungen
:: 
::Der entscheidende Programmaufruf steht am Ende "gawk ..." - kann auch direkt aufgerufen werden
::mit den enstprechenden Parametern.

::Eingabeparameter können weiter unten verändert werden!! Siehe "::Eingabeparameter"

chcp 65001
mode 160,200

echo ================================================================================
echo SpielplanOffline 2019 (Saison 2019/2020)
echo Heino Falcke, August 2019 (V2.8)
echo ================================================================================
echo Lade einen Spielplan von Fussball.de, konvertiere nach .ics-Format und 
echo importiere in Outlook (oder anderen Standard-Kalender)
echo Daten, Präfix und Outputformat (Style) können in der Batch-Datei geändert werden.
echo Mögliche Stile sind: ICS, ICSCSV, CALENDAR, EXCEL, TEXT
echo --------------------------------------------------------------------------------

::------------------------------------------------------------------------
::Check Operating System: 64 or 32 Bit
::------------------------------------------------------------------------
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set THISOS=WIN32 || set THISOS=WIN64
if %THISOS%==WIN32 echo This is a 32bit operating system
if %THISOS%==WIN64 echo This is a 64bit operating system

::------------------------------------------------------------------------
::Some Date Calculations
::------------------------------------------------------------------------
:: --- CHANGE THE COMPUTER DATE FORMAT TEMPORARILY TO MY PREFERENCE "yyyy_MM_dd",
REG COPY "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f 2>nul >nul
REG ADD "HKCU\Control Panel\International" /v sShortDate /d "yyyy_MM_dd" /f 2>nul >nul
SET MYDATE=%date%
SET MYTIME=%time%
:: --- REVERT COMPUTER DATE BACK TO SYSTEM PREFERENCE
REG COPY "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f 2>nul >nul
REG DELETE "HKCU\Control Panel\International-Temp" /f 2>nul >nul
:: --- SPLIT THE TIME DIGITS TO THREE BLOCKS [H] [MM] [SS.SS]
FOR /F "tokens=1-3 delims=:" %%A IN ('echo %MYTIME%') DO SET HOUR=%%A& SET MINUTES=%%B& SET SECONDS2=%%C 
FOR /F "tokens=1-3 delims=_" %%A IN ('echo %MYDATE%') DO SET YEAR=%%A& SET MONTH=%%B& SET DAY=%%C 
set SECONDS=%SECONDS2:~0,2%
set MONTHX=x%MONTH%
set MONTH0=%MONTHX:x0=%
set DAYX=x%DAY%
set DAY0=%DAYX:x0=%
set /A NextYear=(%YEAR%+1)

echo Date: %YEAR%-%MONTH0%-%DAY0% %HOUR%:%MINUTES%:%SECONDS%
set StartDatumHeute=%YEAR%-%MONTH%-%DAY%
set EndDatumNextYear=%NextYEAR%-08-01
echo Heute: %StartDatumHeute%

rem echo Y=%YEAR%
rem echo M0=%MONTH0%
rem echo D0=%DAY0%
rem echo H0=%HOUR%
rem echo M=%MINUTES%
rem echo S=%SECONDS%
set /A SequenceNR=(%YEAR%-1970)*365*24*60*60+(%MONTH0%*30*24*60*60)+(%DAY0%*24*60*60)+(%HOUR%*60*60)+(%MINUTES%*60)+%SECONDS%

::------------------------------------------------------------------------


::------------------------------------------------------------------------
::Eingabeparameter - können hier editiert werden oder extern gesetzt werden
::------------------------------------------------------------------------
:: Datum des ersten Spiels (JJJJ-MM-TT) 
::set StartDatum="2017-07-01" :: Benutze diese Zeile um immer mit dem Saisonstart zu beginnen
if "%StartDatum%"X == ""X (
   set StartDatum=%StartDatumHeute%
   )

:: Datum des letzten Spiels (JJJJ-MM-TT)
if "%EndDatum%"X == ""X set EndDatum=%EndDatumNextYear%
::set EndDatum="2018-06-30"  :: Für festes EndDatum

:: Setze auf eins, wenn nur Auswaertsspiele ausgegeben werden sollen
if "%NurAuswaertsspiele%"X == ""X set NurAuswaertsspiele=0

:: Setze auf eins, wenn nur Heimspiele ausgegeben werden sollen
if "%NurHeimspiele%"X == ""X set NurHeimspiele=0 

::Ausgabeformat
::ICS - .ics-Datei für Outlook oder Mac Calendar
::ICSCSV - Veraltet
::CALENDAR - CSV-Datei zum Import in Google Calendar
::EXCEL - CSV-Datei zum import in Excel oder Numbers mit Kommas getrennt
::EXCEL2 - CSV-Datei zum import in Excel oder Numbers mit Semikolon getrennt
::TEXT - ASCII Text-Datei (z.B. für Word)
if "%style%"X == ""X set style=ICS 

::Beliebiger Text, der vor der Spielparung ausgegeben wird
if "%Prefix%"X == ""X set Prefix=""

::Setzte auf 1, wenn abgesagte Spiele nicht ausgegeben werden sollen
if "%ignoriereAbgesagt%"X == ""X set ignoriereAbgesagt=0
::------------------------------------------------------------------------



set scriptpath=%~dp0%

::set lasturl=%USERPROFILE%\SpielplanOffline\lasturl.txt
::set rootdir=%USERPROFILE:\=\\%
::set outfile=%rootdir%\\Desktop\\spielplan.%EXT%


rem set EXT=csv
rem IF %style%==ICS (set EXT=ics)
rem IF %style%==TEXT (set EXT=txt)
rem set outfile=%outdir%spielplan.%EXT%


::Escape \ to make it useable in awk scripts

if "%rootdir%"X == ""X set rootdir=%scriptpath:~0,-1%

if "%outdir%"X == ""X set outdir=%rootdir%\SpielplanOffline\Output


set rootdirAWK=%rootdir:\=\\%
set outdirAWK=%outdir:\=\\%

::Ab ins Arbeitsverzeichnis
cd /d %scriptpath%bin

set TESSDATA_PREFIX=%scriptpath%bin
echo TESSDATA_PREFIX = %TESSDATA_PREFIX%

echo SequenceNR = %SequenceNR%

rem Set Operating system WIN32 or WIN64
if %myOS%X == X set myOS=%THISOS%

echo Operating System: %myOS%
echo Current Working Directory: %CD%

rem Input URL - input from terminal if not set
set lasturlfile=%scriptpath%SpielplanOffline\lasturl.txt
IF EXIST "%lasturlfile%" (set /P lasturl="" < "%lasturlfile%")

if "%url%"X == ""X (
  echo(
  echo Kopiere Link zur Vereins- oder Mannschaftsseite hierhin:
  echo Letzter Link: %lasturl%
  IF EXIST "%lasturlfile%" (set /P url="" < "%lasturlfile%")
  set /P url="Weblink ([Enter]=Letzter Link): "
) else (
  echo URL: %url% 
)

::Jetzt kommt das entscheidende Programm mit allen Parametern ... 

echo(
gawk -f runscript.awk -v ROOTDIR="%rootdirAWK%" -v url="%url%" -v outdir="%outdirAWK%" -v csvfile="%csvfile%" -v StartDatum=%StartDatum% -v EndDatum=%EndDatum% -v style="%style%" -v Prefix=%Prefix% -v NurHeimspiele=%NurHeimspiele% -v NurAuswaertsspiele=%NurAuswaertsspiele% -v ignoriereAbgesagt=%ignoriereAbgesagt%  -v SequenceNR=%SequenceNR%  -v OS=%myOS% runscript.awk

echo --------------------------------------------------------------------------------

echo Die Ergebnis-Dateien befinden sich im Verzeichnis %outdir% 
if NOT "%backgroundprocessing%"X == "1"X (
   explorer %outdir%
   Pause
)
