diff options
Diffstat (limited to 'extensions/email-gravatar.lua')
| -rw-r--r-- | extensions/email-gravatar.lua | 115 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 file changed, 0 insertions, 115 deletions
diff --git a/extensions/email-gravatar.lua b/extensions/email-gravatar.lua deleted file mode 100644 index 47c359e..0000000 --- a/extensions/email-gravatar.lua +++ /dev/null @@ -1,115 +0,0 @@ --- cgit email-filter that shows a Gravatar icon next to author names. Use it --- with the email-filter or repo.email-filter setting and the lua: prefix. --- --- email-filter=lua:/path/to/email-gravatar.lua --- --- SUPPORTED LUA --- --- Lua 5.1, 5.2, 5.3, 5.4 and LuaJIT. Lua 5.5 is not supported, because luaossl --- has no 5.5 build. --- --- DEPENDENCY --- --- luaossl OpenSSL binding, provides openssl.digest --- <https://github.com/wahern/luaossl> --- --- # Debian and Ubuntu --- sudo apt install luarocks libssl-dev --- sudo luarocks --lua-version 5.1 install luaossl --- --- # Fedora --- sudo dnf install luarocks openssl-devel --- sudo luarocks --lua-version 5.1 install luaossl --- --- # macOS with Homebrew --- brew install luarocks openssl --- luarocks install luaossl OPENSSL_DIR="$(brew --prefix openssl)" --- --- PRIVACY --- --- Every page view sends the visitor's IP address and a hash of each --- committer's email to a third-party service. Leave this filter off if that is --- not acceptable for your instance. --- --- Addresses are hashed with MD5, which Gravatar still accepts. Gravatar also --- supports SHA-256 now, change the digest in hash_hex if you prefer it. - -local digest = require("openssl.digest") - --- --- ===== CONFIGURATION ===== --- - --- Pixel size of the avatar. -local avatar_size = 13 - --- Fallback style for an address with no avatar. See the Gravatar docs for the --- choices, for example retro, identicon, monsterid or mp. -local default_image = "retro" - --- Avatar endpoint. Kept https so the image is not blocked as mixed content on --- an https page. -local base_url = "https://www.gravatar.com/avatar/" - --- Text for the image alt attribute. -local alt_text = "Gravatar" - --- --- ========================= --- - --- State shared across the open, write and close calls of one invocation. -local buffer = "" -local avatar = nil - -local function hash_hex(input) - local b = digest.new("md5"):final(input) - local x = "" - for i = 1, #b do - x = x .. string.format("%.2x", string.byte(b, i)) - end - return x -end - --- Take the address, strip the angle brackets if present, then trim and --- lowercase as the avatar services expect. Returns nil for a missing or empty --- address. -local function normalize_email(email) - if email == nil then - return nil - end - local inner = email:match("<(.*)>") - if inner ~= nil then - email = inner - end - email = (email:gsub("^%s*(.-)%s*$", "%1")):lower() - if email == "" then - return nil - end - return email -end - -function filter_open(email, page) - buffer = "" - local addr = normalize_email(email) - if addr == nil then - avatar = nil - else - avatar = hash_hex(addr) - end -end - -function filter_close() - if avatar == nil then - -- No usable address, render the name without an icon. - html(buffer) - else - html("<img src='" .. base_url .. avatar .. "?s=" .. avatar_size .. "&d=" .. default_image .. - "' width='" .. avatar_size .. "' height='" .. avatar_size .. "' alt='" .. alt_text .. "' /> " .. buffer) - end - return 0 -end - -function filter_write(str) - buffer = buffer .. str -end |
