pretty print
This commit is contained in:
1
Pipfile
1
Pipfile
@@ -8,6 +8,7 @@ selenium = "*"
|
|||||||
playsound = "*"
|
playsound = "*"
|
||||||
pyobjc = "*"
|
pyobjc = "*"
|
||||||
requests = "*"
|
requests = "*"
|
||||||
|
tabulate = "*"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
|
|
||||||
|
|||||||
26
Pipfile.lock
generated
26
Pipfile.lock
generated
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "009581d6bc3a878e2b10db013d3c4e0024e8f18360dae5ddc2e67d134bb2ed96"
|
"sha256": "4019d8f9985fa786497d302e5faf804c03cc8500b1aa5b5e022919fec71257ce"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
@@ -60,6 +60,7 @@
|
|||||||
"sha256:5081aedf8bb40aac1a8ad95adac9e44e148a882686ded614adf46bb67fd67574",
|
"sha256:5081aedf8bb40aac1a8ad95adac9e44e148a882686ded614adf46bb67fd67574",
|
||||||
"sha256:8d5e12a0729dfd1d998a861998b422d0a3e41923d75ea229bacf31372c831d7b",
|
"sha256:8d5e12a0729dfd1d998a861998b422d0a3e41923d75ea229bacf31372c831d7b",
|
||||||
"sha256:9f63fd37bbf3785af4ddb2f86cad5ca81c62cfc7d1c0099637ca18343c3656c1",
|
"sha256:9f63fd37bbf3785af4ddb2f86cad5ca81c62cfc7d1c0099637ca18343c3656c1",
|
||||||
|
"sha256:a1f1e6b457127cbf2b5bd2b94520a7c89fb590b739911eadb2b0499a3a5b0e6f",
|
||||||
"sha256:e9b1311f72f2e170742a7ee3a8149f52c35158dc024a21e88d6f1e52ba5d718b",
|
"sha256:e9b1311f72f2e170742a7ee3a8149f52c35158dc024a21e88d6f1e52ba5d718b",
|
||||||
"sha256:efdee8c4884405e0c0186c57f87d7bfaa0abc1f50b18e865db3caea3a1f329b9"
|
"sha256:efdee8c4884405e0c0186c57f87d7bfaa0abc1f50b18e865db3caea3a1f329b9"
|
||||||
],
|
],
|
||||||
@@ -129,6 +130,7 @@
|
|||||||
"sha256:167aa21ee47b0ee6e4e399915371d183ae84880dc3813c27519e759acb9d20c9",
|
"sha256:167aa21ee47b0ee6e4e399915371d183ae84880dc3813c27519e759acb9d20c9",
|
||||||
"sha256:1925ac30a817e557d1c08450005103bbf76ebd3ff473631fe9875070377b0b4d",
|
"sha256:1925ac30a817e557d1c08450005103bbf76ebd3ff473631fe9875070377b0b4d",
|
||||||
"sha256:2d55796610e6293e83cc40183347e7f75a7c0682775cc19e5986945efa9cac1b",
|
"sha256:2d55796610e6293e83cc40183347e7f75a7c0682775cc19e5986945efa9cac1b",
|
||||||
|
"sha256:484e5b5e9f1757ad7e28799bb5d5d59ce861a3e5449f06fc3a0d05b998e9e6bb",
|
||||||
"sha256:7a98f0f1e21465868f9dd32588ae71e5e6a4cb5c434d4158c9e12273fd7b8f27",
|
"sha256:7a98f0f1e21465868f9dd32588ae71e5e6a4cb5c434d4158c9e12273fd7b8f27",
|
||||||
"sha256:afd1ef147447fe7b06a271458eabb37ece6436705abf86265d7fb57310eca45f",
|
"sha256:afd1ef147447fe7b06a271458eabb37ece6436705abf86265d7fb57310eca45f",
|
||||||
"sha256:daa4a9c51a927630fdd3d3f627e03ebc370aee3c397305db85a0a8ba4c28ae93"
|
"sha256:daa4a9c51a927630fdd3d3f627e03ebc370aee3c397305db85a0a8ba4c28ae93"
|
||||||
@@ -240,6 +242,7 @@
|
|||||||
},
|
},
|
||||||
"pyobjc-framework-cocoa": {
|
"pyobjc-framework-cocoa": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
"sha256:1e31376806e5de883a1d7c7c87d9ff2a8b09fc05d267e0dfce6e42409fb70c67",
|
||||||
"sha256:2e8e7a1a82cca21d9bfac9115baf065305f3da577bf240085964dfb9c9fff337",
|
"sha256:2e8e7a1a82cca21d9bfac9115baf065305f3da577bf240085964dfb9c9fff337",
|
||||||
"sha256:35a6340437a4e0109a302150b7d1f6baf57004ccf74834f9e6062fcafe2fd8d7",
|
"sha256:35a6340437a4e0109a302150b7d1f6baf57004ccf74834f9e6062fcafe2fd8d7",
|
||||||
"sha256:6c15f43077c9a2ba1853eb402ff7a9515df9e584315bc2fcb779d4c95ef46dc5",
|
"sha256:6c15f43077c9a2ba1853eb402ff7a9515df9e584315bc2fcb779d4c95ef46dc5",
|
||||||
@@ -287,6 +290,7 @@
|
|||||||
"pyobjc-framework-coreaudio": {
|
"pyobjc-framework-coreaudio": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:11876f4eb434a492674f8b61a5e9ebd6d9f5bc5ba49a2dd56e5e8dcfee92138f",
|
"sha256:11876f4eb434a492674f8b61a5e9ebd6d9f5bc5ba49a2dd56e5e8dcfee92138f",
|
||||||
|
"sha256:15afd08639ee05b8b2924f63a54bea3e7893eda0efeda0debc94859e88db943a",
|
||||||
"sha256:2c6a6641d4c6bf0464db014b9406566cebad86ae59401e356e09552b2cd478fc",
|
"sha256:2c6a6641d4c6bf0464db014b9406566cebad86ae59401e356e09552b2cd478fc",
|
||||||
"sha256:37d161dc459ba309fa5f46655662cd63ff850b5edddde463c58594bdf4b4dee4",
|
"sha256:37d161dc459ba309fa5f46655662cd63ff850b5edddde463c58594bdf4b4dee4",
|
||||||
"sha256:6eb67ccecdf488e9369706727f8b90623dea35159f8193a59c04d2cd4d752067",
|
"sha256:6eb67ccecdf488e9369706727f8b90623dea35159f8193a59c04d2cd4d752067",
|
||||||
@@ -347,7 +351,8 @@
|
|||||||
"sha256:38a86c24e337b895fa4832323085f2cc84fb5bffaf1c6c4f54173e9774d4017d",
|
"sha256:38a86c24e337b895fa4832323085f2cc84fb5bffaf1c6c4f54173e9774d4017d",
|
||||||
"sha256:53e874af4c5cedcbb21a52b6482f98afb402798062326efef0f08de37f7af002",
|
"sha256:53e874af4c5cedcbb21a52b6482f98afb402798062326efef0f08de37f7af002",
|
||||||
"sha256:b6a05656db2dbfb9e27b2a0ee354528a46cf9d2791a398e60db14c93d6f1c089",
|
"sha256:b6a05656db2dbfb9e27b2a0ee354528a46cf9d2791a398e60db14c93d6f1c089",
|
||||||
"sha256:c95a09979709241e50a2b000f6772751fed99850f1aaa2cacafd039f3a6b3e99"
|
"sha256:c95a09979709241e50a2b000f6772751fed99850f1aaa2cacafd039f3a6b3e99",
|
||||||
|
"sha256:f0afa7868bb5225e1acb3c4b5dd2315b866d4b6735f81ef315ac2ca0a985fc0b"
|
||||||
],
|
],
|
||||||
"markers": "platform_release >= '11.0'",
|
"markers": "platform_release >= '11.0'",
|
||||||
"version": "==7.3"
|
"version": "==7.3"
|
||||||
@@ -412,6 +417,7 @@
|
|||||||
"sha256:a3ae27d5756b9d62d113e7c4f12022f8812bc95bc277f920f0fe2ca45b5272be",
|
"sha256:a3ae27d5756b9d62d113e7c4f12022f8812bc95bc277f920f0fe2ca45b5272be",
|
||||||
"sha256:b172b22f51625a0f92c9730b9d9a193f12bd5e56552d77b6841dfaac0d16bab0",
|
"sha256:b172b22f51625a0f92c9730b9d9a193f12bd5e56552d77b6841dfaac0d16bab0",
|
||||||
"sha256:d290880894256497425a1abd116076e7a74c8b92a2b1b27d899ede16f52e5f20",
|
"sha256:d290880894256497425a1abd116076e7a74c8b92a2b1b27d899ede16f52e5f20",
|
||||||
|
"sha256:ea87b8409d247d0d9968657f36938c62c47369f65ea1094d96b5f6db87c8db0f",
|
||||||
"sha256:fd3f11b3358cbf5a56d4a01e736322daa5b6ce6e3701d41cc9eafcede0267faa"
|
"sha256:fd3f11b3358cbf5a56d4a01e736322daa5b6ce6e3701d41cc9eafcede0267faa"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.6'",
|
"markers": "python_version >= '3.6'",
|
||||||
@@ -524,7 +530,8 @@
|
|||||||
"sha256:71170dd3fb5b9abfe59bf441568b31b8059284054501419c06c94871006cb5cb",
|
"sha256:71170dd3fb5b9abfe59bf441568b31b8059284054501419c06c94871006cb5cb",
|
||||||
"sha256:7b3649e1ddfa2c936a27d8d4c811d72786c911809909d0367ca08cae740d81f2",
|
"sha256:7b3649e1ddfa2c936a27d8d4c811d72786c911809909d0367ca08cae740d81f2",
|
||||||
"sha256:a427f2f560b8568f7992467b4f8acde9dd9de716979a71484cea06ad9e3465ef",
|
"sha256:a427f2f560b8568f7992467b4f8acde9dd9de716979a71484cea06ad9e3465ef",
|
||||||
"sha256:cec94c9e2eef09e624834a358da7c0827938eb0825c2804b09a2bf20858a6615"
|
"sha256:cec94c9e2eef09e624834a358da7c0827938eb0825c2804b09a2bf20858a6615",
|
||||||
|
"sha256:ede612a7eaa0bfd39c6e3e68f6d6c7efab3f6f0565f45b90a21f2de7db101d24"
|
||||||
],
|
],
|
||||||
"markers": "platform_release >= '19.0'",
|
"markers": "platform_release >= '19.0'",
|
||||||
"version": "==7.3"
|
"version": "==7.3"
|
||||||
@@ -689,7 +696,8 @@
|
|||||||
"sha256:69137492b4564d739f9b4eb56f8823a32fab47d13e809ca401b0c66240be929c",
|
"sha256:69137492b4564d739f9b4eb56f8823a32fab47d13e809ca401b0c66240be929c",
|
||||||
"sha256:7bc56539ac0761519d6f68149a012ed9b4250781156dbeeeeb8920146125222a",
|
"sha256:7bc56539ac0761519d6f68149a012ed9b4250781156dbeeeeb8920146125222a",
|
||||||
"sha256:be032ce5d05ac23e82c18a6d25459b45ceac3f3073949a439584a99fc26582a5",
|
"sha256:be032ce5d05ac23e82c18a6d25459b45ceac3f3073949a439584a99fc26582a5",
|
||||||
"sha256:c3e63ce294e50a36c17bc9e65ccf3e448995931fc10fc0c15f899d27c438e25f"
|
"sha256:c3e63ce294e50a36c17bc9e65ccf3e448995931fc10fc0c15f899d27c438e25f",
|
||||||
|
"sha256:e945cda52619d53435fbbdccc63d195987bccfdc6abc59b12caf0c16852d6a45"
|
||||||
],
|
],
|
||||||
"markers": "platform_release >= '12.0'",
|
"markers": "platform_release >= '12.0'",
|
||||||
"version": "==7.3"
|
"version": "==7.3"
|
||||||
@@ -935,6 +943,7 @@
|
|||||||
},
|
},
|
||||||
"pyobjc-framework-quartz": {
|
"pyobjc-framework-quartz": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
"sha256:1139bc6874c0f8b58f0b8602015e0994198bc506a6bcec1071208de32b55ed26",
|
||||||
"sha256:1ef18f5a16511ded65980bf4f5983ea5d35c88224dbad1b3112abd29c60413ea",
|
"sha256:1ef18f5a16511ded65980bf4f5983ea5d35c88224dbad1b3112abd29c60413ea",
|
||||||
"sha256:2c65456ed045dfe1711d0298734e5a3ad670f8c770f7eb3b19979256c388bdd2",
|
"sha256:2c65456ed045dfe1711d0298734e5a3ad670f8c770f7eb3b19979256c388bdd2",
|
||||||
"sha256:3b41eec8d4b10c7c7e011e2f9051367f5499ef315ba52dfbae573c3a2e05469c",
|
"sha256:3b41eec8d4b10c7c7e011e2f9051367f5499ef315ba52dfbae573c3a2e05469c",
|
||||||
@@ -1019,6 +1028,7 @@
|
|||||||
"sha256:1a048e42ddca426ac02838e8f4093f138b1fd88f9de8c3c5f087fbaa60cd1987",
|
"sha256:1a048e42ddca426ac02838e8f4093f138b1fd88f9de8c3c5f087fbaa60cd1987",
|
||||||
"sha256:379287b0a01abc047bee7d2632fa34f038faa8f566c3de6978141bfcf3fc6128",
|
"sha256:379287b0a01abc047bee7d2632fa34f038faa8f566c3de6978141bfcf3fc6128",
|
||||||
"sha256:4109ab15faf2dcf89646330a4f0a6584410d7134418fae0814858cab4ab76347",
|
"sha256:4109ab15faf2dcf89646330a4f0a6584410d7134418fae0814858cab4ab76347",
|
||||||
|
"sha256:57ef7656f01bfdd1dfddc3493e90abc74910379bd9319f764d1ac09fc7c470dc",
|
||||||
"sha256:77d0c4b68d1409719f7bc023719b1f1a066e48f270bcfedb700b342523b191be",
|
"sha256:77d0c4b68d1409719f7bc023719b1f1a066e48f270bcfedb700b342523b191be",
|
||||||
"sha256:966a59f59b57da0cbea0b9d0e59bae0d61e631b5cd0a336982e50705dfaf37a5",
|
"sha256:966a59f59b57da0cbea0b9d0e59bae0d61e631b5cd0a336982e50705dfaf37a5",
|
||||||
"sha256:b6bd5ba1443f2c7d47fa9f4e1257e7e32e00f452a251b5955fa2ba03c032c11d"
|
"sha256:b6bd5ba1443f2c7d47fa9f4e1257e7e32e00f452a251b5955fa2ba03c032c11d"
|
||||||
@@ -1206,6 +1216,14 @@
|
|||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.141.0"
|
"version": "==3.141.0"
|
||||||
},
|
},
|
||||||
|
"tabulate": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4",
|
||||||
|
"sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==0.8.9"
|
||||||
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4",
|
"sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4",
|
||||||
|
|||||||
22
main.py
22
main.py
@@ -1,13 +1,13 @@
|
|||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
# from playsound import playsound
|
|
||||||
from requests import post
|
from requests import post
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
from selenium.webdriver.chrome.options import Options
|
from selenium.webdriver.chrome.options import Options
|
||||||
from selenium.webdriver.common.keys import Keys
|
from selenium.webdriver.common.keys import Keys
|
||||||
|
from tabulate import tabulate
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@@ -28,9 +28,8 @@ def main():
|
|||||||
driver.get('https://telekom.company-bike.com/shop?filter=1&type=Pedelec&groups=MTB/Cross&fed=1')
|
driver.get('https://telekom.company-bike.com/shop?filter=1&type=Pedelec&groups=MTB/Cross&fed=1')
|
||||||
|
|
||||||
bikes = driver.find_elements_by_css_selector('div.product-info > h4')
|
bikes = driver.find_elements_by_css_selector('div.product-info > h4')
|
||||||
bikes.pop()
|
|
||||||
|
|
||||||
print(f'Found {len(bikes)} bikes.')
|
print(f'Found {len(bikes)} (possible) bikes.')
|
||||||
|
|
||||||
check_links = []
|
check_links = []
|
||||||
|
|
||||||
@@ -40,27 +39,30 @@ def main():
|
|||||||
check_links.append(bike.find_element_by_css_selector('a').get_property('href'))
|
check_links.append(bike.find_element_by_css_selector('a').get_property('href'))
|
||||||
else:
|
else:
|
||||||
print(f'{bike.text} known but not wanted.')
|
print(f'{bike.text} known but not wanted.')
|
||||||
|
elif bike.text == 'Ihr Fahrrad ist nicht dabei?':
|
||||||
|
print(f'Ad: "{bike.text}"')
|
||||||
else:
|
else:
|
||||||
alert(f'Unknown bike found: {bike.text}!')
|
alert(f'Unknown bike found: {bike.text}!')
|
||||||
|
|
||||||
for link in check_links:
|
for link in check_links:
|
||||||
driver.get(link)
|
driver.get(link)
|
||||||
name = driver.find_element_by_css_selector('h1.mb-0')
|
name = driver.find_element_by_css_selector('h1.mb-0')
|
||||||
print(f'Checking {name.text}:')
|
print(f'Checking availability for {name.text}:')
|
||||||
sizes = driver.find_elements_by_css_selector('div.size-list-wrapper > ul > li > div > div > h3')
|
sizes = driver.find_elements_by_css_selector('div.size-list-wrapper > ul > li > div > div > h3')
|
||||||
|
results = []
|
||||||
|
print()
|
||||||
for size in sizes:
|
for size in sizes:
|
||||||
if size.text != 'L':
|
|
||||||
print(f'Not caring for size {size.text}.')
|
|
||||||
continue
|
|
||||||
availability = size.find_element_by_xpath('..').find_element_by_css_selector('span').get_attribute("class")
|
availability = size.find_element_by_xpath('..').find_element_by_css_selector('span').get_attribute("class")
|
||||||
availability = re.search(r'ado-(?!light)(\w+)-bulb', availability)
|
availability = re.search(r'ado-(?!light)(\w+)-bulb', availability)
|
||||||
if not availability:
|
if not availability:
|
||||||
alert(f'Error in availability check for {name.text} in size {size.text}')
|
alert(f'Error in availability check for {name.text} in size {size.text}')
|
||||||
continue
|
continue
|
||||||
availability = availability.group(1)
|
availability = availability.group(1)
|
||||||
print(f'Availability of size {size.text}: {availability}')
|
results.append([size.text, availability])
|
||||||
if availability != 'red':
|
if size.text == 'L' and availability != 'red':
|
||||||
alert(f'We got availability for {name.text} in size {size.text}!')
|
alert(f'We got availability for {name.text} in size {size.text}!')
|
||||||
|
print(tabulate(results, tablefmt="pretty"))
|
||||||
|
print('')
|
||||||
driver.close()
|
driver.close()
|
||||||
|
|
||||||
def read_bike_file(filename):
|
def read_bike_file(filename):
|
||||||
|
|||||||
Reference in New Issue
Block a user