minor_scrapes / statwords.py
kgout's picture
Upload 4 files
832d07c
class StatusWordItem:
def __init__(self, word=None, value=None):
self.content = {
"aborted" : {"title": "Aborted", "icon": "⛔️"},
"cancelled" : {"title": "Cancelled", "icon": "❌"},
"cleaning" : {"title": "Cleaning", "icon": "🧹"},
"compiling" : {"title": "Compiling", "icon": "πŸ”¨"},
"complete" : {"title": "Complete", "icon": "βœ…"},
"connecting" : {"title": "Connecting", "icon": "πŸ”—"},
"deleting" : {"title": "Deleting", "icon": "πŸ—‘"},
"disconnecting": {"title": "Disconnecting", "icon": "πŸ”Œ"},
"downloading" : {"title": "Downloading", "icon": "⬇️"},
"error" : {"title": "Error", "icon": "❗️"},
"exporting" : {"title": "Exporting", "icon": "πŸ“€"},
"failure" : {"title": "Failure", "icon": "❌"},
"finished" : {"title": "Finished", "icon": "πŸŽ‰"},
"idle" : {"title": "Idle", "icon": "πŸ•›"},
"importing" : {"title": "Importing", "icon": "πŸ“₯"},
"installing" : {"title": "Installing", "icon": "πŸ”§"},
"loading" : {"title": "Loading", "icon": "⏳"},
"paused" : {"title": "Paused", "icon": "⏸"},
"pending" : {"title": "Pending", "icon": "πŸ•’"},
"progress" : {"title": "Progress", "icon": "πŸ”„"},
"receiving" : {"title": "Receiving", "icon": "πŸ“©"},
"refreshing" : {"title": "Refreshing", "icon": "πŸ”„"},
"rendering" : {"title": "Rendering", "icon": "🎨"},
"restarting" : {"title": "Restarting", "icon": "πŸ”„"},
"resuming" : {"title": "Resuming", "icon": "▢️"},
"running" : {"title": "Running", "icon": "πŸƒ"},
"saving" : {"title": "Saving", "icon": "πŸ’Ύ"},
"scanning" : {"title": "Scanning", "icon": "πŸ”"},
"sending" : {"title": "Sending", "icon": "πŸ“€"},
"size" : {"title": "Size", "icon": "πŸ“"},
"started" : {"title": "Started", "icon": "πŸš€"},
"success" : {"title": "Success", "icon": "βœ…"},
"syncing" : {"title": "Syncing", "icon": "πŸ”„"},
"uninstalling" : {"title": "Uninstalling", "icon": "πŸ”§"},
"updating" : {"title": "Updating", "icon": "πŸ”ƒ"},
"uploading" : {"title": "Uploading", "icon": "⬆️"},
"validating" : {"title": "Validating", "icon": "βœ…"},
"verifying" : {"title": "Verifying", "icon": "βœ…"},
"waiting" : {"title": "Waiting", "icon": "βŒ›οΈ"},
}
self.display = {"status": "", "value": ""}
self.set(word or "", value)
def set(self, word: str, value=None):
"""
outtputto display: an icon and status word, as well as the state if exists
"""
if word in self.content:
self.display["status"] = f"{ self.content[word]['icon']} {self.content[word]['title']}"
else:
self.display["status"] = word or ""
if value in self.content:
self.display["value"] = f"{ self.content[str(value)]['title']}"
else:
self.display["value"] = str(value)
return self.display
def response_code(self, code):
"""
Returns the HTTP response code as a string representation.
"""
response_codes = {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choice",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
510: "Not Extended",
511: "Network Authentication Required",
}
if code in response_codes:
self.display['status'] = 'HTTP Respopnse Code'
self.display['value'] = response_codes[code]
else:
return "Unknown"
return self.display
class Items:
""" List of Items Container """
def __init__(self):
self.items : list[StatusWordItem] = []
def add_item(self, item):
self.items.append(item)
def remove_item(self, item):
self.items.remove(item)
def clear_items(self):
self.items.clear()
def __len__(self):
return len(self.items)
def __iter__(self):
return iter(self.items)