Afegida documentació del table-parser
També s'afegeix lògica a la classe TableParser per poder executar-se
sense desar res a la base de dades.
diff --git a/TableParser.py b/TableParser.py
index 76eefd5..311f7b9 100644
--- a/TableParser.py
+++ b/TableParser.py
@@ -12,7 +12,7 @@
def __init__(self, baseUrl):
self.baseUrl = baseUrl
- def parse(self, year, month, day, area, db):
+ def parse(self, year, month, day, area, db = None):
url = self.baseUrl
params = {
'year': year,
@@ -56,23 +56,25 @@
begins = pytz.timezone(self.TIMEZONE).localize(begins)
ends = begins + timedelta(minutes=durada)
- print("Afegint " + assignaturaRaw
+ print(("Afegint " if db != None else "") + assignaturaRaw
+ ", " + hora
+ ", " + str(durada) + "mins"
+ ", " + aula)
- cursor1 = db.cursor()
- cursor1.execute("SELECT id FROM classes WHERE calendar_name = ? AND room = ? AND begins = ? AND ends = ?",
- assignatura, aula, begins, ends)
- row = cursor1.fetchone()
- if row:
- print("[WARNING] Ja estava a la DB (id " + str(row.id) + ")")
- else:
- cursor2 = db.cursor()
- cursor2.execute("INSERT INTO classes (calendar_name, room, begins, ends) VALUES (?, ?, ?, ?)",
+ if db != None:
+ cursor1 = db.cursor()
+ cursor1.execute("SELECT id FROM classes WHERE calendar_name = ? AND room = ? AND begins = ? AND ends = ?",
assignatura, aula, begins, ends)
+ row = cursor1.fetchone()
+ if row:
+ print("[WARNING] Ja estava a la DB (id " + str(row.id) + ")")
+ else:
+ cursor2 = db.cursor()
+ cursor2.execute("INSERT INTO classes (calendar_name, room, begins, ends) VALUES (?, ?, ?, ?)",
+ assignatura, aula, begins, ends)
td_hora = td_hora.findNext('td')
column = column + 1
- db.commit()
+ if db != None:
+ db.commit()
diff --git a/table_parser_docs.md b/table_parser_docs.md
new file mode 100644
index 0000000..4088cf9
--- /dev/null
+++ b/table_parser_docs.md
@@ -0,0 +1,19 @@
+# Com utilitzar la classe TableParser?
+1. Instal·lar Python 3 i PIP3
+2. Instal·lar les següents llibreries: configparser, datetime, bs4, pytz, requests
+
+Per parsejar les classes per un dia concret, es pot utilitzar el següent codi Python:
+
+```
+from TableParser import TableParser
+parser = TableParser('https://fme-intranet.upc.edu/appsext/mrbs/web/day.php')
+parser.parse(2020, 09, 28, 2)
+```
+
+## Com configurar el cron script?
+Per poder escriure a la base de dades les classes del dia següent s'ha de fer el següent addicionalment:
+1. Instal·lar la llibreria pyodbc
+2. Instal·lar el connector MySQL ODBC (https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html)
+3. Copiar l'arxiu `config.ini.default` a `config.ini` i introduir les credencials i informació de la base de dades.
+4. Configurar cron perquè s'executi l'script `cron_table_parser.py` un cop cada dia.
+