refactoring
This commit is contained in:
@@ -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",
|
"\n",
|
||||||
" return lastUpdatedIntensivstationen < lastUpdatedOriginal\n",
|
" def needsUpdate(self):\n",
|
||||||
|
" return self.getLastUpdatedIntensivstationen() < self.getLastUpdatedOriginal()\n",
|
||||||
" \n",
|
" \n",
|
||||||
"def _getLastUpdatedIntensivstationen():\n",
|
" def getLastUpdatedIntensivstationen(self):\n",
|
||||||
|
" if self.lastUpdatedIntensivstationen is None:\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",
|
" \n",
|
||||||
"def _getLastUpdatedOriginal():\n",
|
" return self.lastUpdatedIntensivstationen\n",
|
||||||
" html = _getOriginalHtml()\n",
|
"\n",
|
||||||
|
" def getLastUpdatedOriginal(self):\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())"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user