filter: add gravatar scripts
The lua one is hugely faster than the python one, but both are included for comparison. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
		
							
								
								
									
										25
									
								
								filters/email-gravatar.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								filters/email-gravatar.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| -- This script may be used with the email-filter or repo.email-filter settings in cgitrc. | ||||
| -- It adds gravatar icons to author names. It is designed to be used with the lua: | ||||
| -- prefix in filters. It is much faster than the corresponding python script. | ||||
| -- | ||||
| -- Requirements: | ||||
| -- 	luacrypto >= 0.3 | ||||
| -- 	<http://mkottman.github.io/luacrypto/> | ||||
| -- | ||||
|  | ||||
| require("crypto") | ||||
|  | ||||
| function filter_open(email) | ||||
| 	buffer = "" | ||||
| 	md5 = crypto.digest("md5", email:sub(2, -2):lower()) | ||||
| end | ||||
|  | ||||
| function filter_close() | ||||
| 	html("<img src='//www.gravatar.com/avatar/" .. md5 .. "?s=13&d=retro' style='height:10pt;width:10pt'> " .. buffer) | ||||
| end | ||||
|  | ||||
| function filter_write(str) | ||||
| 	buffer = buffer .. str | ||||
| end | ||||
|  | ||||
|  | ||||
							
								
								
									
										33
									
								
								filters/email-gravatar.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										33
									
								
								filters/email-gravatar.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| #!/usr/bin/env python3 | ||||
|  | ||||
| # Please prefer the email-gravatar.lua using lua: as a prefix over this script. This | ||||
| # script is very slow, in comparison. | ||||
| # | ||||
| # This script may be used with the email-filter or repo.email-filter settings in cgitrc. | ||||
| # | ||||
| # The following environment variables can be used to retrieve the configuration | ||||
| # of the repository for which this script is called: | ||||
| # CGIT_REPO_URL        ( = repo.url       setting ) | ||||
| # CGIT_REPO_NAME       ( = repo.name      setting ) | ||||
| # CGIT_REPO_PATH       ( = repo.path      setting ) | ||||
| # CGIT_REPO_OWNER      ( = repo.owner     setting ) | ||||
| # CGIT_REPO_DEFBRANCH  ( = repo.defbranch setting ) | ||||
| # CGIT_REPO_SECTION    ( = section        setting ) | ||||
| # CGIT_REPO_CLONE_URL  ( = repo.clone-url setting ) | ||||
| # | ||||
| # It receives an email address on argv[1] and text on stdin. It prints | ||||
| # to stdout that text prepended by a gravatar at 10pt. | ||||
|  | ||||
| import sys | ||||
| import hashlib | ||||
|  | ||||
| email = sys.argv[1].lower().strip() | ||||
| if email[0] == '<': | ||||
|         email = email[1:] | ||||
| if email[-1] == '>': | ||||
|         email = email[0:-1] | ||||
|  | ||||
| md5 = hashlib.md5(email.encode()).hexdigest() | ||||
| text = sys.stdin.read().strip() | ||||
|  | ||||
| print("<img src='//www.gravatar.com/avatar/" + md5 + "?s=13&d=retro' style='height:10pt;width:10pt'> " + text) | ||||
		Reference in New Issue
	
	Block a user
	 Jason A. Donenfeld
					Jason A. Donenfeld