Skip to content

Instantly share code, notes, and snippets.

@Mechazawa
Created November 10, 2022 13:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mechazawa/958b683db21187590ec5ed3ec9f4a17d to your computer and use it in GitHub Desktop.
Save Mechazawa/958b683db21187590ec5ed3ec9f4a17d to your computer and use it in GitHub Desktop.
Albert Python extension - HTTP status code lookup
# -*- 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