From 13123f372fa671f4c38c03029242377d44f8a232 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Wed, 2 Oct 2019 01:16:27 +0100 Subject: [PATCH] adding slack-bot --- mediainfo/mediaInfo.py | 4 +++ slack-bot/geckodriver.log | 0 slack-bot/ghostdriver.log | 40 +++++++++++++++++++++++++++++ slack-bot/regex.txt | 2 ++ slack-bot/scraper.py | 54 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 100 insertions(+) create mode 100644 slack-bot/geckodriver.log create mode 100644 slack-bot/ghostdriver.log create mode 100644 slack-bot/regex.txt create mode 100644 slack-bot/scraper.py diff --git a/mediainfo/mediaInfo.py b/mediainfo/mediaInfo.py index f3c725c..f5da35c 100644 --- a/mediainfo/mediaInfo.py +++ b/mediainfo/mediaInfo.py @@ -22,3 +22,7 @@ for track in media_info.tracks: print(media_info.tracks, '\n') print(media_info.tracks[1].__dict__['frame_rate']) + +print(media_info.tracks[1].to_data()) + +assert media_info.tracks[1].to_data() == media_info.tracks[1].__dict__ diff --git a/slack-bot/geckodriver.log b/slack-bot/geckodriver.log new file mode 100644 index 0000000..e69de29 diff --git a/slack-bot/ghostdriver.log b/slack-bot/ghostdriver.log new file mode 100644 index 0000000..a4dd09a --- /dev/null +++ b/slack-bot/ghostdriver.log @@ -0,0 +1,40 @@ +[INFO - 2019-10-01T21:21:11.596Z] GhostDriver - Main - running on port 36431 +[INFO - 2019-10-01T21:21:12.546Z] Session [64e21600-e491-11e9-a9ee-6f66bd22b9ad] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1","webSecurityEnabled":true} +[INFO - 2019-10-01T21:21:12.546Z] Session [64e21600-e491-11e9-a9ee-6f66bd22b9ad] - page.customHeaders: - {} +[INFO - 2019-10-01T21:21:12.546Z] Session [64e21600-e491-11e9-a9ee-6f66bd22b9ad] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"2.1.1","driverName":"ghostdriver","driverVersion":"1.2.0","platform":"linux-unknown-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}} +[INFO - 2019-10-01T21:21:12.546Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: 64e21600-e491-11e9-a9ee-6f66bd22b9ad +[INFO - 2019-10-01T21:26:11.893Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T21:31:11.897Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T21:36:11.897Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T21:41:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T21:46:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T21:51:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T21:56:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:01:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:06:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:11:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:16:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:21:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:26:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:31:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:36:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:41:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:46:11.898Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:51:11.899Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T22:56:11.899Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:01:11.899Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:06:11.900Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:11:11.900Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:16:11.900Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:21:12.888Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:26:12.889Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:31:12.889Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:36:12.889Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:41:12.889Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:46:12.890Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:51:12.890Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-01T23:56:12.891Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-02T00:01:12.891Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-02T00:06:12.892Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-02T00:11:12.893Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW +[INFO - 2019-10-02T00:16:12.893Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW diff --git a/slack-bot/regex.txt b/slack-bot/regex.txt new file mode 100644 index 0000000..c434750 --- /dev/null +++ b/slack-bot/regex.txt @@ -0,0 +1,2 @@ +col 4 +^\<[a-zA-Z\/]+\>(.+?)\s+?\:\s+?(.+?)\<[a-zA-Z\/]+\>(.+?)\s+?\:\s+?(.+?)\<[a-zA-Z\/]+\>(.+?)\s+?\:\s+?(.+?)\<[a-zA-Z\/]+\>(.+?)\s+?\:\s+?(.+?)\<[a-zA-Z\/]+\>(.+?)\s+?\:\s+?(.+?)\<[a-zA-Z\/]+\>$ diff --git a/slack-bot/scraper.py b/slack-bot/scraper.py new file mode 100644 index 0000000..a1dad43 --- /dev/null +++ b/slack-bot/scraper.py @@ -0,0 +1,54 @@ +from bs4 import BeautifulSoup +from selenium import webdriver +import emoji +from datetime import datetime + +url = 'http://www.trafficengland.com/traffic-alerts' +# prepare the option for the chrome driver +options = webdriver.ChromeOptions() +options.add_argument('headless') + +# start the chrome driver +browser = webdriver.Chrome(chrome_options=options) +browser.get(url) +html = browser.page_source + +soup = BeautifulSoup(html, features='lxml') +# soup.find_all(class_='alerts-severity-Severe') + + +def printBreak(): + print('\n') + + +table = soup.find_all('td') + +list = [] + +for item in table: + list.append(item) + +for i in range(0, 4): + print(list[i]) + +printBreak() + +totalItems = int(len(list) / 4) + +for i in range(0, 4): + print(list[i].string) + printBreak() + +newList = ([x.text for x in soup.find_all('td')]) + +currentTime = datetime.now().strftime('%H:%M:%S') + +print(emoji.emojize('Did someone say M62 :anguished:!? Let' + '\'s check the latest updates from Highways' + ' England! :police_car::rotating_light:', + use_aliases=True)) +print(f'As of {currentTime}, there is currently a {newList[2]} {newList[1]}' + f' on the {newList[0]}') + +# print(list[3].prettify()) +print(str(list[3]))