From 87460117abe673f12c4de9bc152f01f4bb9cced5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Quenneville?= Date: Fri, 14 Nov 2014 16:36:14 -0500 Subject: [PATCH] Create initial project Alfred workflow that displays HTTP status codes and opens a browser with the correct RFC on hitting return. --- alfred-http.rb | 282 +++++++++++++++++++++++++++++++++++++++++++++++++ icon.png | Bin 0 -> 23735 bytes info.plist | 94 +++++++++++++++++ 3 files changed, 376 insertions(+) create mode 100644 alfred-http.rb create mode 100644 icon.png create mode 100644 info.plist diff --git a/alfred-http.rb b/alfred-http.rb new file mode 100644 index 0000000..42fe248 --- /dev/null +++ b/alfred-http.rb @@ -0,0 +1,282 @@ +statuses = [ + { + :status_code => "100", + :reason_phrase => "Continue", + :one_liner => "The server has received the request headers, and that the client should proceed to send the request body", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.2.1", + }, + { + :status_code => "101", + :reason_phrase => "Switching Protocols", + :one_liner => "The requester has asked the server to switch protocols and the server is acknowledging that it will do so", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.2.2", + }, + { + :status_code => "200", + :reason_phrase => "OK", + :one_liner => "Standard response for successful HTTP requests", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.3.1", + }, + { + :status_code => "201", + :reason_phrase => "Created", + :one_liner => "The request has been fulfilled and resulted in a new resource being created", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.3.2", + }, + { + :status_code => "202", + :reason_phrase => "Accepted", + :one_liner => "The request has been accepted for processing, but the processing has not been completed" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.3.3", + }, + { + :status_code => "203", + :reason_phrase => "Non-Authoritative Information", + :one_liner => "The server successfully processed the request, but is returning information that may be from another source" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.3.4", + }, + { + :status_code => "204", + :reason_phrase => "No Content", + :one_liner => "The server successfully processed the request, but is not returning any content" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.3.5", + }, + { + :status_code => "205", + :reason_phrase => "Reset Content", + :one_liner => "The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.3.6", + }, + { + :status_code => "206", + :reason_phrase => "Partial Content", + :one_liner => "The server is delivering only part of the resource (byte serving) due to a range header sent by the client" , + :defined_in => "http://tools.ietf.org/html/rfc7233#section-4.1", + }, + { + :status_code => "300", + :reason_phrase => "Multiple Choices", + :one_liner => "Indicates multiple options for the resource that the client may follow" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.4.1", + }, + { + :status_code => "301", + :reason_phrase => "Moved Permanently", + :one_liner => "This and all future requests should be directed to the given URI" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.4.2", + }, + { + :status_code => "302", + :reason_phrase => "Found", + :one_liner => "The target resource resides temporarily under a different URI" , + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.4.3", + }, + { + :status_code => "303", + :reason_phrase => "See Other", + :one_liner => "The server is redirecting to a different URI which accesses the same resource", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.4.4", + }, + { + :status_code => "304", + :reason_phrase => "Not Modified", + :one_liner => "There is no need to retransmit the resource, since the client still has a previously-downloaded copy", + :defined_in => "http://tools.ietf.org/html/rfc7232#section-4.1", + }, + { + :status_code => "305", + :reason_phrase => "Use Proxy", + :one_liner => "The requested resource is only available through a proxy, whose address is provided in the response", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.4.5", + }, + { + :status_code => "307", + :reason_phrase => "Temporary Redirect", + :one_liner => "Subsequent requests should use the specified proxy", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.4.7", + }, + { + :status_code => "400", + :reason_phrase => "Bad Request", + :one_liner => "The request could not be understood by the server due to malformed syntax", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.1", + }, + { + :status_code => "401", + :reason_phrase => "Unauthorized", + :one_liner => "Authentication is required and has failed or has not yet been provided", + :defined_in => "http://tools.ietf.org/html/rfc7235#section-3.1", + }, + { + :status_code => "402", + :reason_phrase => "Payment Required", + :one_liner => "The 402 (Payment Required) status code is reserved for future use", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.2", + }, + { + :status_code => "403", + :reason_phrase => "Forbidden", + :one_liner => "The server understood the request but refuses to authorize it", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.3", + }, + { + :status_code => "404", + :reason_phrase => "Not Found", + :one_liner => "The requested resource could not be found but may be available again in the future", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.4", + }, + { + :status_code => "405", + :reason_phrase => "Method Not Allowed", + :one_liner => "A request was made of a resource using a request method not supported by that resource", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.5", + }, + { + :status_code => "406", + :reason_phrase => "Not Acceptable", + :one_liner => "The requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.6", + }, + { + :status_code => "407", + :reason_phrase => "Proxy Authentication Required", + :one_liner => "The client must first authenticate itself with the proxy", + :defined_in => "http://tools.ietf.org/html/rfc7235#section-3.2", + }, + { + :status_code => "408", + :reason_phrase => "Request Timeout", + :one_liner => "The server timed out waiting for the request", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.7", + }, + { + :status_code => "409", + :reason_phrase => "Conflict", + :one_liner => "The request could not be processed because of conflict in the request", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.8", + }, + { + :status_code => "410", + :reason_phrase => "Gone", + :one_liner => "The resource requested is no longer available and will not be available again", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.9", + }, + { + :status_code => "411", + :reason_phrase => "Length Required", + :one_liner => "The request did not specify the length of its content, which is required by the requested resource", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.10", + }, + { + :status_code => "412", + :reason_phrase => "Precondition Failed", + :one_liner => "The server does not meet one of the preconditions that the requester put on the request", + :defined_in => "http://tools.ietf.org/html/rfc7232#section-4.2", + }, + { + :status_code => "413", + :reason_phrase => "Payload Too Large", + :one_liner => "The request is larger than the server is willing or able to process", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.11", + }, + { + :status_code => "414", + :reason_phrase => "URI Too Long", + :one_liner => "The URI provided was too long for the server to process", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.12", + }, + { + :status_code => "415", + :reason_phrase => "Unsupported Media Type", + :one_liner => "The request entity has a media type which the server or resource does not support", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.13", + }, + { + :status_code => "416", + :reason_phrase => "Range Not Satisfiable", + :one_liner => "The client has asked for a portion of the file (byte serving), but the server cannot supply that portion", + :defined_in => "http://tools.ietf.org/html/rfc7233#section-4.4", + }, + { + :status_code => "417", + :reason_phrase => "Expectation Failed", + :one_liner => "The server cannot meet the requirements of the Expect request-header field", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.14", + }, + { + :status_code => "426", + :reason_phrase => "Upgrade Required", + :one_liner => "The client should switch to a different protocol", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.5.15", + }, + { + :status_code => "500", + :reason_phrase => "Internal Server Error", + :one_liner => "The server encountered an unexpected condition that prevented it from fulfilling the request", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.6.1", + }, + { + :status_code => "501", + :reason_phrase => "Not Implemented", + :one_liner => "The server does not support the functionality required to fulfill the request", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.6.2", + }, + { + :status_code => "502", + :one_liner => "The server, while acting as a gateway or proxy, received an invalid response from an inbound server", + :reason_phrase => "Bad Gateway", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.6.3", + }, + { + :status_code => "503", + :reason_phrase => "Service Unavailable", + :one_liner => "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.6.4", + }, + { + :status_code => "504", + :reason_phrase => "Gateway Timeout", + :one_liner => "The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.6.5", + }, + { + :status_code => "505", + :reason_phrase => "HTTP Version Not Supported", + :one_liner => "The server does not support, or refuses to support, the major version of HTTP that was used in the request", + :defined_in => "http://tools.ietf.org/html/rfc7231#section-6.6.6", + }, +] + + +matches = statuses.select do |status| + status[:status_code].to_s.include? ARGV.first +end + +require "rexml/document" +doc = REXML::Document.new +doc << REXML::XMLDecl.new +doc << REXML::Element.new("items") + +matches.each do |match| + item = REXML::Element.new "item" + + title = REXML::Element.new("title") + title << REXML::Text.new("#{match[:status_code]} - #{match[:reason_phrase]}") + item << title + + subtitle = REXML::Element.new("subtitle") + subtitle << REXML::Text.new(match[:one_liner].to_s) + item << subtitle + + arg = REXML::Element.new("arg") + arg << REXML::Text.new(match[:defined_in]) + item << arg + + icon = REXML::Element.new("icon") + icon << REXML::Text.new("icon.png") + item << icon + + doc.root << item +end + +puts doc diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bd20490bdde526d620f32e2d45cac8830e788202 GIT binary patch literal 23735 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 WR17rhmj>dIke!v2<>M2+*Z%>1^mIJ{ literal 0 HcmV?d00001 diff --git a/info.plist b/info.plist new file mode 100644 index 0000000..10383f2 --- /dev/null +++ b/info.plist @@ -0,0 +1,94 @@ + + + + + bundleid + + category + Tools + connections + + 874CA1E0-1CB5-414B-9AE9-640C9D4D5689 + + + destinationuid + 7AA93635-6392-44CE-992F-C5F41F99DF06 + modifiers + 0 + modifiersubtext + + + + + createdby + Joël Quenneville + description + HTTP status codes + disabled + + name + HTTP + objects + + + config + + argumenttype + 0 + escaping + 127 + keyword + http + script + ruby alfred-http.rb {query} + title + Look up HTTP statuses + type + 0 + withspace + + + type + alfred.workflow.input.scriptfilter + uid + 874CA1E0-1CB5-414B-9AE9-640C9D4D5689 + version + 0 + + + config + + plusspaces + + url + {query} + utf8 + + + type + alfred.workflow.action.openurl + uid + 7AA93635-6392-44CE-992F-C5F41F99DF06 + version + 0 + + + readme + + uidata + + 7AA93635-6392-44CE-992F-C5F41F99DF06 + + ypos + 10 + + 874CA1E0-1CB5-414B-9AE9-640C9D4D5689 + + ypos + 10 + + + webaddress + + +