refactoring

This commit is contained in:
frankknoll
2022-03-08 11:47:50 +01:00
parent c0cc99caf1
commit b9b448411c

View File

@@ -40,65 +40,62 @@
"\n", "\n",
"INTENSIVSTATIONEN_DATE_FORMAT = \"%d.%m.%Y, %H:%M Uhr\"\n", "INTENSIVSTATIONEN_DATE_FORMAT = \"%d.%m.%Y, %H:%M Uhr\"\n",
"\n", "\n",
"def needsUpdate():\n", "class DateProvider:\n",
" lastUpdatedIntensivstationen = _getLastUpdatedIntensivstationen()\n",
" print('lastUpdatedIntensivstationen:', lastUpdatedIntensivstationen)\n",
" \n", " \n",
" lastUpdatedOriginal = _getLastUpdatedOriginal()\n", " def __init__(self):\n",
" print('lastUpdatedOriginal:', lastUpdatedOriginal)\n", " self.lastUpdatedIntensivstationen = None\n",
" self.lastUpdatedOriginal = None\n",
"\n",
" def needsUpdate(self):\n",
" return self.getLastUpdatedIntensivstationen() < self.getLastUpdatedOriginal()\n",
" \n", " \n",
" return lastUpdatedIntensivstationen < lastUpdatedOriginal\n", " def getLastUpdatedIntensivstationen(self):\n",
" \n", " if self.lastUpdatedIntensivstationen is None:\n",
"def _getLastUpdatedIntensivstationen():\n",
" htmlContent = requests.get(\"https://knollfrank.github.io/HowBadIsMyBatch/intensivstationen.html\").text\n", " htmlContent = requests.get(\"https://knollfrank.github.io/HowBadIsMyBatch/intensivstationen.html\").text\n",
" soup = BeautifulSoup(htmlContent, \"lxml\")\n", " soup = BeautifulSoup(htmlContent, \"lxml\")\n",
" dateStr = soup.find(id = \"Datenstand\").text\n", " dateStr = soup.find(id = \"Datenstand\").text\n",
" return datetime.strptime(dateStr, INTENSIVSTATIONEN_DATE_FORMAT)\n", " self.lastUpdatedIntensivstationen = datetime.strptime(dateStr, INTENSIVSTATIONEN_DATE_FORMAT)\n",
" \n",
" return self.lastUpdatedIntensivstationen\n",
"\n", "\n",
"def _getLastUpdatedOriginal():\n", " def getLastUpdatedOriginal(self):\n",
" html = _getOriginalHtml()\n", " if self.lastUpdatedOriginal is None:\n",
" html = self._getOriginalHtml()\n",
" lastUpdatedColumn = 'Letzte Änderung'\n", " lastUpdatedColumn = 'Letzte Änderung'\n",
" dataFrame = _asDataFrame(html, lastUpdatedColumn)\n", " dataFrame = self._asDataFrame(html, lastUpdatedColumn)\n",
" return dataFrame.loc['Landkreis-Daten', lastUpdatedColumn].to_pydatetime()\n", " self.lastUpdatedOriginal = dataFrame.loc['Landkreis-Daten', lastUpdatedColumn].to_pydatetime()\n",
"\n", "\n",
"def _getOriginalHtml():\n", " return self.lastUpdatedOriginal\n",
"\n",
" def _getOriginalHtml(self):\n",
" driver = webdriver.Firefox()\n", " driver = webdriver.Firefox()\n",
" driver.get('https://www.intensivregister.de/#/aktuelle-lage/downloads')\n", " driver.get('https://www.intensivregister.de/#/aktuelle-lage/downloads')\n",
" sleep(5)\n", " sleep(10)\n",
" innerHTML = driver.execute_script(\"return document.body.innerHTML\")\n", " innerHTML = driver.execute_script(\"return document.body.innerHTML\")\n",
" driver.quit()\n", " driver.quit()\n",
" return innerHTML\n", " return innerHTML\n",
"\n", "\n",
"def _asDataFrame(html, lastUpdatedColumn):\n", " def _asDataFrame(self, html, lastUpdatedColumn):\n",
" dataFrame = pd.read_html(html, parse_dates = [lastUpdatedColumn])[0]\n", " dataFrame = pd.read_html(html, parse_dates = [lastUpdatedColumn])[0]\n",
" dataFrame[lastUpdatedColumn] = pd.to_datetime(dataFrame[lastUpdatedColumn], format = \"%d.%m.%Y %H:%M Uhr\")\n", " dataFrame[lastUpdatedColumn] = pd.to_datetime(dataFrame[lastUpdatedColumn], format = \"%d.%m.%Y %H:%M Uhr\")\n",
" dataFrame.set_index('Name', inplace = True)\n", " dataFrame.set_index('Name', inplace = True)\n",
" return dataFrame\n", " return dataFrame\n"
"\n", ]
"needsUpdate = needsUpdate()\n", },
{
"cell_type": "code",
"execution_count": null,
"id": "336f56e6",
"metadata": {},
"outputs": [],
"source": [
"dateProvider = DateProvider()\n",
"print('lastUpdatedIntensivstationen:', dateProvider.getLastUpdatedIntensivstationen())\n",
"print('lastUpdatedOriginal:', dateProvider.getLastUpdatedOriginal()) \n",
"needsUpdate = dateProvider.needsUpdate()\n",
"print('needsUpdate: ', needsUpdate)" "print('needsUpdate: ', needsUpdate)"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"id": "963f068b",
"metadata": {},
"outputs": [],
"source": [
"lastUpdatedOriginal = _getLastUpdatedOriginal()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bc48f4cf",
"metadata": {},
"outputs": [],
"source": [
"lastUpdatedOriginal"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -126,7 +123,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"saveLastUpdatedIntensivstationen(lastUpdatedOriginal)" "saveLastUpdatedIntensivstationen(dateProvider.getLastUpdatedOriginal())"
] ]
}, },
{ {