Created
November 10, 2022 13:09
Albert Python extension - HTTP status code lookup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from albert import * | |
import os | |
__title__ = "HTTP" | |
__version__ = "0.1.0" | |
__triggers__ = "http " | |
__authors__ = "Mechazawa" | |
#__exec_deps__ = ["whatever"] | |
iconPath = iconLookup("albert") | |
httpCodes = [ | |
[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 Choices"], | |
[301, "Moved Permanently"], | |
[302, "Found"], | |
[303, "See Other"], | |
[304, "Not Modified"], | |
[305, "Use Proxy"], | |
[306, "(Unused)"], | |
[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, "Content Too Large"], | |
[414, "URI Too Long"], | |
[415, "Unsupported Media Type"], | |
[416, "Range Not Satisfiable"], | |
[417, "Expectation Failed"], | |
[418, "(Unused)"], | |
[421, "Misdirected Request"], | |
[422, "Unprocessable Content"], | |
[423, "Locked"], | |
[424, "Failed Dependency"], | |
[425, "Too Early"], | |
[426, "Upgrade Required"], | |
[427, "Unassigned "], | |
[428, "Precondition Required"], | |
[429, "Too Many Requests"], | |
[430, "Unassigned "], | |
[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 (OBSOLETED)"], | |
[511, "Network Authentication Required"] | |
] | |
# Can be omitted | |
def initialize(): | |
pass | |
# Can be omitted | |
def finalize(): | |
pass | |
def handleQuery(query): | |
if not query.isTriggered: | |
return | |
# Note that when storing a reference to query, e.g. in a closure, you must not use | |
# query.isValid. Apart from the query beeing invalid anyway it will crash the appplication. | |
# The Python type holds a pointer to the C++ type used for isValid(). The C++ type will be | |
# deleted when the query is finished. Therfore getting isValid will result in a SEGFAULT. | |
return [ | |
Item( | |
id=str(code[0]), | |
icon=iconPath, | |
text=str(code[0]), | |
subtext=code[1], | |
completion=str(code[0]), | |
actions=[ | |
UrlAction( | |
text='Open on MDN', | |
url='https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/%s' % str(code[0])) | |
] | |
) | |
for code in httpCodes | |
if query.string.strip() in str(code[0]) | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment