Last active
August 9, 2024 13:14
-
-
Save tomatosoupcan/33b04d0ac326c487b7d8268b840d9247 to your computer and use it in GitHub Desktop.
Weechat Replace Scryfall MTG Shortcode
This file contains hidden or 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 -*- | |
| import weechat | |
| import re | |
| import urllib2 | |
| weechat.register("mtg_replace", "tomatosoup", "0.1", "GPL3", "replaces mtg shortcodes and resolves scryfall images and replaces those too", "", "UTF-8") | |
| weechat.prnt(" ", "Hello world") | |
| mtgmatch = re.compile("^(.*)(:mana(.*):)(.*)") | |
| halfmatch = re.compile(".*https://scryfall.com/card.*utm_source=slack.*") | |
| boldmatch = re.compile("(?:^|\s)\*.*\*(?:$|\s)") | |
| itamatch = re.compile("(?:^|\s)_.*_(?:$|\s)") | |
| urlmatch = re.compile("(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)") | |
| swaplist = [ | |
| ["mana-0","%s0%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-1","%s1%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-2","%s2%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-2b","%s2/B%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-2g","%s2/%sG%s",(weechat.color("black,gray"),weechat.color("black,green"),weechat.color("reset"))], | |
| ["mana-2r","%s2/%sR%s",(weechat.color("black,gray"),weechat.color("black,red"),weechat.color("reset"))], | |
| ["mana-2u","%s2/%sU%s",(weechat.color("black,gray"),weechat.color("black,blue"),weechat.color("reset"))], | |
| ["mana-2w","%s2/%sW%s",(weechat.color("black,gray"),weechat.color("black,white"),weechat.color("reset"))], | |
| ["mana-3","%s3%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-4","%s4%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-5","%s5%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-6","%s6%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-7","%s7%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-8","%s8%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-9","%s9%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-10","%s10%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-11","%s11%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-12","%s12%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-13","%s13%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-14","%s14%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-15","%s15%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-16","%s16%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-17","%s17%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-18","%s18%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-19","%s19%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-20","%s20%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-100-1","%s10%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-100-2","%s0%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-1000000-1","%s1,%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-1000000-2","%s000%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-1000000-3","%s,00%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-1000000-4","%s0%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-b","%sB%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-bg","%sB/%sG%s",(weechat.color("black,gray"),weechat.color("black,green"),weechat.color("reset"))], | |
| ["mana-bp","%sΦ%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-br","%sB/%sR%s",(weechat.color("black,gray"),weechat.color("black,red"),weechat.color("reset"))], | |
| ["mana-c","%s◇%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-chaos","%s൴%s",(weechat.color("white,darkgray"),weechat.color("reset"))], | |
| ["mana-e","%s⬟%s",(weechat.color("white,darkgray"),weechat.color("reset"))], | |
| ["mana-g","%sG%s",(weechat.color("black,green"),weechat.color("reset"))], | |
| ["mana-gp","%sΦ%s",(weechat.color("black,green"),weechat.color("reset"))], | |
| ["mana-gu","%sG%s/%sU%s",(weechat.color("black,green"),weechat.color("black,gray"),weechat.color("black,blue"),weechat.color("reset"))], | |
| ["mana-gu","%sG%s/%sW%s",(weechat.color("black,green"),weechat.color("black,gray"),weechat.color("black,white"),weechat.color("reset"))], | |
| ["mana-half","%s½%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-hr","%s½%s",(weechat.color("black,red"),weechat.color("reset"))], | |
| ["mana-hw","%s½%s",(weechat.color("black,white"),weechat.color("reset"))], | |
| ["mana-infinity","%s∞%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-q","%s↶%s",(weechat.color("white,darkgray"),weechat.color("reset"))], | |
| ["mana-r","%sR%s",(weechat.color("black,red"),weechat.color("reset"))], | |
| ["mana-rg","%sR%s/%sG%s",(weechat.color("black,red"),weechat.color("black,gray"),weechat.color("black,green"),weechat.color("reset"))], | |
| ["mana-rp","%sΦ%s",(weechat.color("black,red"),weechat.color("reset"))], | |
| ["mana-rw","%sR%s/%sW%s",(weechat.color("black,red"),weechat.color("black,gray"),weechat.color("black,white"),weechat.color("reset"))], | |
| ["mana-s","%s❄%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-t","%s↷%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-u","%sU%s",(weechat.color("black,blue"),weechat.color("reset"))], | |
| ["mana-ub","%sU%s/B%s",(weechat.color("black,blue"),weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-up","%sΦ%s",(weechat.color("black,blue"),weechat.color("reset"))], | |
| ["mana-ur","%sU%s/%sR%s",(weechat.color("black,blue"),weechat.color("black,gray"),weechat.color("black,red"),weechat.color("reset"))], | |
| ["mana-w","%sW%s",(weechat.color("black,white"),weechat.color("reset"))], | |
| ["mana-wb","%sW%s/B%s",(weechat.color("black,white"),weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-wp","%sΦ%s",(weechat.color("black,white"),weechat.color("reset"))], | |
| ["mana-wu","%sW%s/%sU%s",(weechat.color("black,white"),weechat.color("black,gray"),weechat.color("black,blue"),weechat.color("reset"))], | |
| ["mana-x","%sX%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-y","%sY%s",(weechat.color("black,gray"),weechat.color("reset"))], | |
| ["mana-z","%sZ%s",(weechat.color("black,gray"),weechat.color("reset"))] | |
| ] | |
| urlreg = re.compile('(https://scryfall.com/card.*utm_source=.*)\)') | |
| imgreg = re.compile('border-.*src="(.*jpg)') | |
| date1 = re.compile('!date.*?{time} ') | |
| def mtgchange_cb(data, modifier, modifier_data, string): | |
| string = string.replace("IRCCloud :]","crypt") | |
| string = string.replace("dxbot2.0 :]","[dxboi]") | |
| string = string.replace("Scryfall :]","[scryfall]") | |
| if mtgmatch.match(string) or halfmatch.match(string): | |
| w = 0 | |
| string = string.replace("::",": :").replace("00-1: :","00-1::").replace("00-2: :","00-2::").replace("00-3: :","00-3::").replace("00-4: :","00-4::") | |
| for x in re.findall(urlreg, string): | |
| w = 1 | |
| if w == 0: | |
| string = string.replace("_","").replace("*","") | |
| y = 0 | |
| for x in swaplist: | |
| secmatch = re.compile("(:"+swaplist[y][0]+":)") | |
| for z in re.findall(secmatch, string): | |
| string = string.replace(":"+swaplist[y][0]+":",swaplist[y][1],1) % swaplist[y][2] | |
| y = y + 1 | |
| for x in re.findall(urlreg, string): | |
| urlfir = str(x) | |
| page = urllib2.urlopen(urlfir) | |
| for z in re.findall(imgreg, page.read()): | |
| string = string.replace(urlfir, str(z)) | |
| return string | |
| for x in re.findall(date1, string): | |
| string = string.replace(str(x), "") | |
| for x in re.findall(urlmatch, string): | |
| return string | |
| for x in re.findall(boldmatch, string): | |
| string = string.replace("*",weechat.color("bold"),1).replace("*",weechat.color("-bold"),1) | |
| for x in re.findall(itamatch, string): | |
| string = string.replace("_",weechat.color("italic"),1).replace("_",weechat.color("-italic"),1) | |
| return string | |
| weechat.hook_modifier("weechat_print", "mtgchange_cb", "") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment