From b3ee49d174a35bbf4da6b1c60059795fdb88f710 Mon Sep 17 00:00:00 2001 From: Lionel Date: Sun, 21 Oct 2018 14:53:51 +0200 Subject: Finally I'll rewrite it in bash i find it more readable than my python scripts. Will plan on a powershell version too --- __init__.py | 0 algo.txt | 0 colorcode.py | 22 ------- errmsg.py | 7 --- foldercreating.py | 82 -------------------------- inputs.py | 69 ---------------------- main.py | 46 --------------- mapsparsing.py | 27 --------- prototyping/__init__.py | 0 prototyping/colorcode.py | 22 +++++++ prototyping/errmsg.py | 7 +++ prototyping/foldercreating.py | 82 ++++++++++++++++++++++++++ prototyping/inputs.py | 69 ++++++++++++++++++++++ prototyping/main.py | 46 +++++++++++++++ prototyping/mapsparsing.py | 27 +++++++++ prototyping/randoweb.py | 133 ++++++++++++++++++++++++++++++++++++++++++ randopitons.sh | 93 +++++++++++++++++++++++++++++ randoweb.py | 133 ------------------------------------------ regions.txt | 10 ++++ webregions.txt | 9 +++ 20 files changed, 498 insertions(+), 386 deletions(-) delete mode 100644 __init__.py delete mode 100644 algo.txt delete mode 100644 colorcode.py delete mode 100644 errmsg.py delete mode 100644 foldercreating.py delete mode 100644 inputs.py delete mode 100644 main.py delete mode 100644 mapsparsing.py create mode 100644 prototyping/__init__.py create mode 100644 prototyping/colorcode.py create mode 100644 prototyping/errmsg.py create mode 100644 prototyping/foldercreating.py create mode 100644 prototyping/inputs.py create mode 100644 prototyping/main.py create mode 100644 prototyping/mapsparsing.py create mode 100644 prototyping/randoweb.py create mode 100644 randopitons.sh delete mode 100644 randoweb.py create mode 100644 regions.txt create mode 100644 webregions.txt diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/algo.txt b/algo.txt deleted file mode 100644 index e69de29..0000000 diff --git a/colorcode.py b/colorcode.py deleted file mode 100644 index e120109..0000000 --- a/colorcode.py +++ /dev/null @@ -1,22 +0,0 @@ -# coding: utf-8 -#Simplified color codes here for error/warning/ok and the such.. messages -# -#class Colorcode: -# def __init__(self): -# self.endcolor='\033[0m' -# self.bold='\033[1m' -# self.header='\033[95m' -# self.okblue='\033[94m' -# self.okgreen='\033[92m' -# self.warn='\033[93m' -# self.fail='\033[91m' -# self.underline='\033[4m' - -endc='\033[0m' -bold='\033[1m' -head='\033[95m' -okblue='\033[94m' -okgreen='\033[92m' -warn='\033[93m' -fail='\033[91m' -underline='\033[4m' diff --git a/errmsg.py b/errmsg.py deleted file mode 100644 index 8e67d42..0000000 --- a/errmsg.py +++ /dev/null @@ -1,7 +0,0 @@ -import colorcode as clc -os=clc.fail+"Operating System error:"+clc.endc -direxist=clc.warn+clc.bold+"The folder already exists !"+clc.endc -formaterr=clc.fail+"Something occured with the formating. File is not retrievable, passing on next download."+clc.endc -sslerr=clc.fail+clc.bold+"SSL Certificate Error. Please check the time on your computer, adjust it accordingly, or wait a bit before retrying the downloads."+clc.endc -sigkill=clc.fail+"\n\nProcess interrupted by CTRL+C or system."+clc.endc -"\n\nProcess interrupted by CTRL+C or system." diff --git a/foldercreating.py b/foldercreating.py deleted file mode 100644 index 489d588..0000000 --- a/foldercreating.py +++ /dev/null @@ -1,82 +0,0 @@ -import subprocess -import os -import time -import colorcode as clc -import errmsg as e -import randoweb as rdo -#global foldernames - -thehome=os.path.expanduser("~") -defoldername="/Randopitons" -def_folder=thehome+defoldername -a_folder=0 - - - - -def defolder(): - try: - print "\nCreating default folder "+def_folder+" ..." - os.mkdir(def_folder) - except OSError,er: - print e.os - print format(er) - -def mainfolder(): - try: - a_folder=input("\n\nWhich folder would you want to download the files to [Default to home directory "+def_folder+"]") - os.mkdir(a_folder) - print "Folder "+a_folder+" was created successfully" - except OSError, er: - #errors out if folder exists else print the error (can be permissions or anything else) - if e.errno != os.errno.EEXIST: - raise - else: - print e.os - print format(er) - pass - - except SyntaxError: - os.mkdir(def_folder) - except KeyboardInterrupt: - print e.sigkill - except: - raise - -def mkfolder(MAIL,PSW,regionnames,foldernames,maptype,ptr,bfn): - - try: - if a_folder==0: - os.mkdir(os.path.join(def_folder,foldernames[ptr])) - else: - os.mkdir(os.path.join(a_folder,foldernames[ptr])) - #rdo.testalakon() - rdo.randoweb(MAIL,PSW,regionnames[ptr],maptype,bfn,def_folder+a_str) - except OSError, er: - print e.os - print format(er) - - -def mkallfolder(MAIL,PSW,regionnames,foldernames,maptype,bfn): - iii=0 - a_str="str" - try: - for a_str in foldernames: - if a_folder==0: - os.mkdir(os.path.join(def_folder,a_str)) - else: - os.mkdir(os.path.join(a_folder,a_str)) - - - try: - print "on attaque par le "+regionnames[iii] - rdo.randoweb(MAIL,PSW,regionnames[iii],maptype,bfn,def_folder+a_str) - except: - raise - iii=iii+1 - #subprocess.call("rm -d "+fullpath) - print "All folders were created successfully" - except OSError, er: - print e.os - print format(er) - diff --git a/inputs.py b/inputs.py deleted file mode 100644 index 3b47bef..0000000 --- a/inputs.py +++ /dev/null @@ -1,69 +0,0 @@ -import getpass -import colorcode as clc -import errmsg as e - - -def mapfileinput(): - maptype = 0 - print clc.bold+"\n Which map file extension you would want to download ?"+clc.endc - print """ - 1. gpx (GPS Exchange Format) - 2. trk (CompeGPS Land Track File) - 3. kml (Keyhole Markup Language)\n""" - - while maptype<1 or maptype>3: - try: - maptype = input("You must enter a number between 1 and 3. Your choice ? ") - int(maptype) - except (KeyboardInterrupt, SystemExit): - print e.sigkill - exit() - except SyntaxError: - print "Defaulting to gpx. If this isn't what you wanted, you can always interrupt the script by pressing "+clc.bold+clc.okblue+"CTRL+C"+clc.endc - maptype=1 - return maptype - - -def regioninput(): - zone = 0 - print clc.bold+"\n Which zone you would want to download ?"+clc.endc - print """ - 1. Cirque de Cilaos (Cilaos Circus) - 2. Cirque de Mafate (Mafate's Circus) - 3. Cirque de Salazie (Salazie's Circus) - 4. Est (East) - 5. Nord (North) - 6. Ouest (West) - 7. Sud (South) - 8. Volcan (Volcano) - 9. Ailleurs (Elsewhere) - 10. All \n""" - - while zone < 1 or zone > 10: - try: - zone = input("You must enter a number between 1 and 10. Your zone [Default is \"All\"]: ") - int(zone) - except (KeyboardInterrupt, SystemExit): - print e.sigkill - exit() - except SyntaxError: - print("\nDefaulting to All. If this isn't what you wanted, you can always interrupt the script by pressing "+clc.bold+clc.okblue+"CTRL+C"+clc.endc) - zone = 10; - except NameError: - print "\nPlease enter a number between 1 and 10." - zone = 0 - return zone - -def loginmail(): - try: - MAIL=raw_input("Your email to log in to randopitons.re : ") - except KeyboardInterrupt: - print e.sigkill - return MAIL - -def loginpass(): - try: - PSW=getpass.getpass(prompt="Your password to log in to randopitons.re: ") - except KeyboardInterrupt: - print e.sigkill - return PSW diff --git a/main.py b/main.py deleted file mode 100644 index 56f04d6..0000000 --- a/main.py +++ /dev/null @@ -1,46 +0,0 @@ -import os -import inputs as io - -import colorcode as clc -foldernames=["Cirque de Cilaos","Cirque de Mafate","Cirque de Salazie","Est","Nord","Ouest","Sud","Volcan","Ailleurs","All"] -webregionnames=[] -for i in range(9): - try: - leftside=foldernames[i].split(' ')[0].lower()+"-" - rightside=foldernames[i].split(' ')[2].lower() - webregionnames.append(leftside+rightside) - except IndexError,ierr: - oneside=foldernames[i].split(' ')[0].lower() - webregionnames.append(oneside) - pass -import foldercreating as fdc -basicfilename="" - -print clc.bold+"*************************************************************************************************************" -print clc.bold+"* Welcome ! *"+clc.endc -print clc.bold+"* With this script, you will be able to download gpx,trk and kml traces for hitchiking on the Reunion Isle. *"+clc.endc -print clc.bold+"*************************************************************************************************************" -zonechoice=io.regioninput() -zoneptr=zonechoice-1 -maptype=io.mapfileinput() -MAIL=io.loginmail() -PSW=io.loginpass() - - - -if maptype==1: - basicfilename="f.gpx" -elif maptype==2: - basicfilename="f.trk" -elif maptype==3: - basicfilename="f.kml" - -fdc.mainfolder() -if zonechoice == 10: - fdc.mkallfolder(MAIL,PSW,webregionnames,foldernames,maptype,basicfilename) -else: - fdc.mkfolder(MAIL,PSW,webregionnames,foldernames,maptype,zoneptr,basicfilename) - - - - diff --git a/mapsparsing.py b/mapsparsing.py deleted file mode 100644 index 6caa37a..0000000 --- a/mapsparsing.py +++ /dev/null @@ -1,27 +0,0 @@ -import xml.etree.ElementTree as xmlp -import re -import errmsg as reeee -import os -def mapparsing(maptype,basicfilename): - try: - tree=xmlp.parse(basicfilename) - root=tree.getroot() - if maptype==1: - filename=root[1][0].text+".gpx" - elif maptype==2: - thefile=open(basicfilename) - for i in range(3): - thefile.readline() - filename=re.findall(r'\|(.*?)\|', thefile.readline())[0]+".trk" - elif maptype==3: - filename= root[0][10][1][0].text+".kml" - os.rename(basicfilename,filename) - except OSError, e: - print reeee.os - except xmlp.ParseError, er: - print reeee.formaterr - print format(er) - os.remove(basicfilename) - pass - - diff --git a/prototyping/__init__.py b/prototyping/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/prototyping/colorcode.py b/prototyping/colorcode.py new file mode 100644 index 0000000..e120109 --- /dev/null +++ b/prototyping/colorcode.py @@ -0,0 +1,22 @@ +# coding: utf-8 +#Simplified color codes here for error/warning/ok and the such.. messages +# +#class Colorcode: +# def __init__(self): +# self.endcolor='\033[0m' +# self.bold='\033[1m' +# self.header='\033[95m' +# self.okblue='\033[94m' +# self.okgreen='\033[92m' +# self.warn='\033[93m' +# self.fail='\033[91m' +# self.underline='\033[4m' + +endc='\033[0m' +bold='\033[1m' +head='\033[95m' +okblue='\033[94m' +okgreen='\033[92m' +warn='\033[93m' +fail='\033[91m' +underline='\033[4m' diff --git a/prototyping/errmsg.py b/prototyping/errmsg.py new file mode 100644 index 0000000..8e67d42 --- /dev/null +++ b/prototyping/errmsg.py @@ -0,0 +1,7 @@ +import colorcode as clc +os=clc.fail+"Operating System error:"+clc.endc +direxist=clc.warn+clc.bold+"The folder already exists !"+clc.endc +formaterr=clc.fail+"Something occured with the formating. File is not retrievable, passing on next download."+clc.endc +sslerr=clc.fail+clc.bold+"SSL Certificate Error. Please check the time on your computer, adjust it accordingly, or wait a bit before retrying the downloads."+clc.endc +sigkill=clc.fail+"\n\nProcess interrupted by CTRL+C or system."+clc.endc +"\n\nProcess interrupted by CTRL+C or system." diff --git a/prototyping/foldercreating.py b/prototyping/foldercreating.py new file mode 100644 index 0000000..489d588 --- /dev/null +++ b/prototyping/foldercreating.py @@ -0,0 +1,82 @@ +import subprocess +import os +import time +import colorcode as clc +import errmsg as e +import randoweb as rdo +#global foldernames + +thehome=os.path.expanduser("~") +defoldername="/Randopitons" +def_folder=thehome+defoldername +a_folder=0 + + + + +def defolder(): + try: + print "\nCreating default folder "+def_folder+" ..." + os.mkdir(def_folder) + except OSError,er: + print e.os + print format(er) + +def mainfolder(): + try: + a_folder=input("\n\nWhich folder would you want to download the files to [Default to home directory "+def_folder+"]") + os.mkdir(a_folder) + print "Folder "+a_folder+" was created successfully" + except OSError, er: + #errors out if folder exists else print the error (can be permissions or anything else) + if e.errno != os.errno.EEXIST: + raise + else: + print e.os + print format(er) + pass + + except SyntaxError: + os.mkdir(def_folder) + except KeyboardInterrupt: + print e.sigkill + except: + raise + +def mkfolder(MAIL,PSW,regionnames,foldernames,maptype,ptr,bfn): + + try: + if a_folder==0: + os.mkdir(os.path.join(def_folder,foldernames[ptr])) + else: + os.mkdir(os.path.join(a_folder,foldernames[ptr])) + #rdo.testalakon() + rdo.randoweb(MAIL,PSW,regionnames[ptr],maptype,bfn,def_folder+a_str) + except OSError, er: + print e.os + print format(er) + + +def mkallfolder(MAIL,PSW,regionnames,foldernames,maptype,bfn): + iii=0 + a_str="str" + try: + for a_str in foldernames: + if a_folder==0: + os.mkdir(os.path.join(def_folder,a_str)) + else: + os.mkdir(os.path.join(a_folder,a_str)) + + + try: + print "on attaque par le "+regionnames[iii] + rdo.randoweb(MAIL,PSW,regionnames[iii],maptype,bfn,def_folder+a_str) + except: + raise + iii=iii+1 + #subprocess.call("rm -d "+fullpath) + print "All folders were created successfully" + except OSError, er: + print e.os + print format(er) + diff --git a/prototyping/inputs.py b/prototyping/inputs.py new file mode 100644 index 0000000..3b47bef --- /dev/null +++ b/prototyping/inputs.py @@ -0,0 +1,69 @@ +import getpass +import colorcode as clc +import errmsg as e + + +def mapfileinput(): + maptype = 0 + print clc.bold+"\n Which map file extension you would want to download ?"+clc.endc + print """ + 1. gpx (GPS Exchange Format) + 2. trk (CompeGPS Land Track File) + 3. kml (Keyhole Markup Language)\n""" + + while maptype<1 or maptype>3: + try: + maptype = input("You must enter a number between 1 and 3. Your choice ? ") + int(maptype) + except (KeyboardInterrupt, SystemExit): + print e.sigkill + exit() + except SyntaxError: + print "Defaulting to gpx. If this isn't what you wanted, you can always interrupt the script by pressing "+clc.bold+clc.okblue+"CTRL+C"+clc.endc + maptype=1 + return maptype + + +def regioninput(): + zone = 0 + print clc.bold+"\n Which zone you would want to download ?"+clc.endc + print """ + 1. Cirque de Cilaos (Cilaos Circus) + 2. Cirque de Mafate (Mafate's Circus) + 3. Cirque de Salazie (Salazie's Circus) + 4. Est (East) + 5. Nord (North) + 6. Ouest (West) + 7. Sud (South) + 8. Volcan (Volcano) + 9. Ailleurs (Elsewhere) + 10. All \n""" + + while zone < 1 or zone > 10: + try: + zone = input("You must enter a number between 1 and 10. Your zone [Default is \"All\"]: ") + int(zone) + except (KeyboardInterrupt, SystemExit): + print e.sigkill + exit() + except SyntaxError: + print("\nDefaulting to All. If this isn't what you wanted, you can always interrupt the script by pressing "+clc.bold+clc.okblue+"CTRL+C"+clc.endc) + zone = 10; + except NameError: + print "\nPlease enter a number between 1 and 10." + zone = 0 + return zone + +def loginmail(): + try: + MAIL=raw_input("Your email to log in to randopitons.re : ") + except KeyboardInterrupt: + print e.sigkill + return MAIL + +def loginpass(): + try: + PSW=getpass.getpass(prompt="Your password to log in to randopitons.re: ") + except KeyboardInterrupt: + print e.sigkill + return PSW diff --git a/prototyping/main.py b/prototyping/main.py new file mode 100644 index 0000000..56f04d6 --- /dev/null +++ b/prototyping/main.py @@ -0,0 +1,46 @@ +import os +import inputs as io + +import colorcode as clc +foldernames=["Cirque de Cilaos","Cirque de Mafate","Cirque de Salazie","Est","Nord","Ouest","Sud","Volcan","Ailleurs","All"] +webregionnames=[] +for i in range(9): + try: + leftside=foldernames[i].split(' ')[0].lower()+"-" + rightside=foldernames[i].split(' ')[2].lower() + webregionnames.append(leftside+rightside) + except IndexError,ierr: + oneside=foldernames[i].split(' ')[0].lower() + webregionnames.append(oneside) + pass +import foldercreating as fdc +basicfilename="" + +print clc.bold+"*************************************************************************************************************" +print clc.bold+"* Welcome ! *"+clc.endc +print clc.bold+"* With this script, you will be able to download gpx,trk and kml traces for hitchiking on the Reunion Isle. *"+clc.endc +print clc.bold+"*************************************************************************************************************" +zonechoice=io.regioninput() +zoneptr=zonechoice-1 +maptype=io.mapfileinput() +MAIL=io.loginmail() +PSW=io.loginpass() + + + +if maptype==1: + basicfilename="f.gpx" +elif maptype==2: + basicfilename="f.trk" +elif maptype==3: + basicfilename="f.kml" + +fdc.mainfolder() +if zonechoice == 10: + fdc.mkallfolder(MAIL,PSW,webregionnames,foldernames,maptype,basicfilename) +else: + fdc.mkfolder(MAIL,PSW,webregionnames,foldernames,maptype,zoneptr,basicfilename) + + + + diff --git a/prototyping/mapsparsing.py b/prototyping/mapsparsing.py new file mode 100644 index 0000000..6caa37a --- /dev/null +++ b/prototyping/mapsparsing.py @@ -0,0 +1,27 @@ +import xml.etree.ElementTree as xmlp +import re +import errmsg as reeee +import os +def mapparsing(maptype,basicfilename): + try: + tree=xmlp.parse(basicfilename) + root=tree.getroot() + if maptype==1: + filename=root[1][0].text+".gpx" + elif maptype==2: + thefile=open(basicfilename) + for i in range(3): + thefile.readline() + filename=re.findall(r'\|(.*?)\|', thefile.readline())[0]+".trk" + elif maptype==3: + filename= root[0][10][1][0].text+".kml" + os.rename(basicfilename,filename) + except OSError, e: + print reeee.os + except xmlp.ParseError, er: + print reeee.formaterr + print format(er) + os.remove(basicfilename) + pass + + diff --git a/prototyping/randoweb.py b/prototyping/randoweb.py new file mode 100644 index 0000000..57fd7f3 --- /dev/null +++ b/prototyping/randoweb.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +from requests import session +import inputs +from bs4 import BeautifulSoup as bs +import colorcode as clc +import errmsg as e +import os +import mapsparsing as mpp +randonb=[] +a_str="eh" +baseurl='https://randopitons.re/randonnee/' + +def filei(dwnld,fpath): + try: + f=open(fpath,'a+') + gudencoding=dwnld.text.encode('utf-8') + f.write(gudencoding) + f.close() + except: + raise + + + +def testalakon(): + payload = { + 'mail': 'lionel.miquel46@gmail.com', + 'password': 'VEobWylvUdToab8' + } + with session() as c: + try: + c.post('https://randopitons.re/connexion', data=payload) + regionpage = c.get('https://randopitons.re/randonnees/region/cirque-cilaos') + try: + wsite=bs(regionpage.text, "lxml") + print "Voici les donnees:"+regionpage.text + except: + raise + try: + for i in wsite.find_all('tr'): + randonb.append(i.get("rid")) + try: + randonb.pop(0) + print "POPPED" + except: + raise + print "Voici les numéros de randos:" + print randonb + try: + for i in randonb: + print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/gpx' + try: + dwnld = c.get(baseurl+i+'/trace/gpx') + except: + raise + filei(dwnld,'/home/lili/Randopitons/Cirque de Cilaos/f-'+i+'.gpx') + except: + raise + except: + raise + except: + raise + +def randoweb(MAIL,PSW,region,maptype,bfn,folderpath): + payload = { + 'mail': MAIL, + 'password': PSW + } + + with session() as c: + + try: + c.post('https://randopitons.re/connexion', data=payload) + regionpage = c.get('https://randopitons.re/randonnees/region/'+region) + try: + wsite=bs(regionpage.text, "lxml") + print "Voici les donnees:"+regionpage.text + except: + raise + try: + for i in wsite.find_all('tr'): + randonb.append(i.get("rid")) + try: + randonb.pop(0) + print "POPPED" + except: + raise + print "Voici les numéros de randos:" + print randonb + except: + raise + + + + try: + for i in randonb: + if maptype==1: + try: + print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/gpx' + dwnld = c.get(baseurl+i+'/trace/gpx') + except TypeError: + pass + except: + raise + filei(dwnld,folderpath+bfn) + elif maptype==2: + try: + print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/trk' + dwnld = c.get(baseurl+i+'/trace/trk') + except TypeError: + pass + except: + raise + filei(dwnld,folderpath+bfn) + else: + try: + print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/kml' + dwnld = c.get(baseurl+i+'/trace/kml') + except TypeError: + pass + except: + raise + filei(dwnld,folderpath+bfn) + except: + raise + try: + mpp.mapparsing(maptype,folderpath+bfn) + except: + raise + print("Finished writing file.") + except : + raise + + diff --git a/randopitons.sh b/randopitons.sh new file mode 100644 index 0000000..00f4ef0 --- /dev/null +++ b/randopitons.sh @@ -0,0 +1,93 @@ +#!/bin/bash +# ANSI color codes +RS="\e[0m" # reset +HC="\e[1m" # hicolor +UL="\e[4m" # underline +INV="\e[7m" # inverse background and foreground +FBLK="\e[30m" # foreground black +FRED="\e[31m" # foreground red +FGRN="\e[32m" # foreground green +FYEL="\e[33m" # foreground yellow +FBLE="\e[34m" # foreground blue +FMAG="\e[35m" # foreground magenta +FCYN="\e[36m" # foreground cyan +FWHT="\e[37m" # foreground white +BBLK="\e[40m" # background black +BRED="\e[41m" # background red +BGRN="\e[42m" # background green +BYEL="\e[43m" # background yellow +BBLE="\e[44m" # background blue +BMAG="\e[45m" # background magenta +BCYN="\e[46m" # background cyan +BWHT="\e[47m" # background white +BLD="\e[1m" # BOLD text +# ANSI color codes + +#https://stackoverflow.com/questions/4813092/how-to-read-entire-line-from-bash +#so we don't use a while loop +IFS=$'\n' + +tellusage() +{ +echo -e "${BLD}PURPOSE:${RS} With this script, you will be able to download gpx,trk and kml traces for hitchiking on the Reunion Isle.\n +${BLD}USAGE$RS: randopitons.sh -u \"username@mymail.com\" -mp maptype. You can supply the -a flag to the previous example to download all regions \n +${BLD}MAPTYPE FORMAT:$RS gpx, trk or kml" + +} + +credentials() +{ +RDPUSER=$1 +echo -e "\nYour username is $RDPUSER." +echo -e "\nPassword (for randopitons.re): " +read -s RDPUSERPASS +} + + +MAPTYPE="gpx" +RDPHOME=$HOME"/Randopitons" +RDPUSER= +RDPUSERPASS= + +if [ "$1" = "" ];then + tellusage +fi + +while [ "$1" != "" ]; do + + case $1 in + -u | --username ) + shift + credentials + ;; + + -mp | --maptype ) + shift + MAPTYPE=$1 + echo -e "\nChosen maptype is $1" + while [ $MAPTYPE != "gpx" -a $MAPTYPE != "trk" -a $MAPTYPE != "kml" ] + do + echo -e $HC$BRED"${FYEL}\nMaptype supplied is not correct$RS" + echo -e "Which map filetype you want to set : ${BLD}gpx(default),trk or kml ?$RS$RS$RS" + read -N 3 MAPTYPE + done + echo -e $HC$FGRN"\n$MAPTYPE maptype is a valid choice !"$RS + ;; + -a | --all ) + echo -e "\nThis will download all the hitchiking routes from all regions." + echo -e "\nIf no maptype is specified (with -mp or --maptype), it will default to .gpx filetype" + ;; + + + +# -h | --help ) tellusage +# exit +# ;; + * ) tellusage + exit 1 + esac + shift +done + + +# echo -e "\n purz" diff --git a/randoweb.py b/randoweb.py deleted file mode 100644 index 57fd7f3..0000000 --- a/randoweb.py +++ /dev/null @@ -1,133 +0,0 @@ -# -*- coding: utf-8 -*- -from requests import session -import inputs -from bs4 import BeautifulSoup as bs -import colorcode as clc -import errmsg as e -import os -import mapsparsing as mpp -randonb=[] -a_str="eh" -baseurl='https://randopitons.re/randonnee/' - -def filei(dwnld,fpath): - try: - f=open(fpath,'a+') - gudencoding=dwnld.text.encode('utf-8') - f.write(gudencoding) - f.close() - except: - raise - - - -def testalakon(): - payload = { - 'mail': 'lionel.miquel46@gmail.com', - 'password': 'VEobWylvUdToab8' - } - with session() as c: - try: - c.post('https://randopitons.re/connexion', data=payload) - regionpage = c.get('https://randopitons.re/randonnees/region/cirque-cilaos') - try: - wsite=bs(regionpage.text, "lxml") - print "Voici les donnees:"+regionpage.text - except: - raise - try: - for i in wsite.find_all('tr'): - randonb.append(i.get("rid")) - try: - randonb.pop(0) - print "POPPED" - except: - raise - print "Voici les numéros de randos:" - print randonb - try: - for i in randonb: - print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/gpx' - try: - dwnld = c.get(baseurl+i+'/trace/gpx') - except: - raise - filei(dwnld,'/home/lili/Randopitons/Cirque de Cilaos/f-'+i+'.gpx') - except: - raise - except: - raise - except: - raise - -def randoweb(MAIL,PSW,region,maptype,bfn,folderpath): - payload = { - 'mail': MAIL, - 'password': PSW - } - - with session() as c: - - try: - c.post('https://randopitons.re/connexion', data=payload) - regionpage = c.get('https://randopitons.re/randonnees/region/'+region) - try: - wsite=bs(regionpage.text, "lxml") - print "Voici les donnees:"+regionpage.text - except: - raise - try: - for i in wsite.find_all('tr'): - randonb.append(i.get("rid")) - try: - randonb.pop(0) - print "POPPED" - except: - raise - print "Voici les numéros de randos:" - print randonb - except: - raise - - - - try: - for i in randonb: - if maptype==1: - try: - print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/gpx' - dwnld = c.get(baseurl+i+'/trace/gpx') - except TypeError: - pass - except: - raise - filei(dwnld,folderpath+bfn) - elif maptype==2: - try: - print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/trk' - dwnld = c.get(baseurl+i+'/trace/trk') - except TypeError: - pass - except: - raise - filei(dwnld,folderpath+bfn) - else: - try: - print clc.okgreen+"Maybe downloading "+baseurl+i+'/trace/kml' - dwnld = c.get(baseurl+i+'/trace/kml') - except TypeError: - pass - except: - raise - filei(dwnld,folderpath+bfn) - except: - raise - try: - mpp.mapparsing(maptype,folderpath+bfn) - except: - raise - print("Finished writing file.") - except : - raise - - diff --git a/regions.txt b/regions.txt new file mode 100644 index 0000000..9569285 --- /dev/null +++ b/regions.txt @@ -0,0 +1,10 @@ +Cirque de Cilaos +Cirque de Mafate +Cirque de Salazie +Est +Nord +Ouest +Sud +Volcan +Ailleurs +All diff --git a/webregions.txt b/webregions.txt new file mode 100644 index 0000000..6a45d63 --- /dev/null +++ b/webregions.txt @@ -0,0 +1,9 @@ +cirque-cilaos +cirque-mafate +cirque-salazie +est +nord +ouest +sud +volcan +ailleurs \ No newline at end of file -- cgit v1.2.3-54-g00ecf