🎉 initial implementation

This commit is contained in:
Andreas Schneider 2019-02-06 17:53:27 +01:00
commit 4ed2d152f8
2 changed files with 494 additions and 0 deletions

57
__init__.py Normal file
View File

@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
"""gitmoji Picker for Albert
Usage: g: gitmoji name or description
Example: g: bug"""
from albertv0 import *
import os
import json
__iid__ = "PythonInterface/v0.2"
__prettyname__ = "gitmoji picker"
__version__ = "1.0.0"
__trigger__ = "g:"
__author__ = "Andreas Schneider"
__dependencies__ = []
data_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "gitmojis.json")
gitmojis = []
def initialize():
with open(data_path) as f:
data = json.load(f)
gitmojis.clear()
for gitmoji in data["gitmojis"]:
gitmoji["tokens"] = [gitmoji["name"].lower()] + gitmoji["description"].lower().split()
gitmojis.append(gitmoji)
def handleQuery(query):
needles = query.string.lower().split()
matches = []
for gitmoji in gitmojis:
matchCount = count_matches(gitmoji["tokens"], needles)
if matchCount > 0:
result = dict()
result.update(gitmoji)
result["matchCount"] = matchCount
matches.append(result)
matches = sorted(matches, key=lambda data: data["matchCount"], reverse=True)
if query.isValid and query.isTriggered:
return [Item(id=match["name"], completion=match["name"], icon=match["emoji"], text=match["emoji"] + " " + match["code"], subtext=match["description"], actions=[ClipAction("Copy to clipboard", match["code"])]) for match in matches]
return []
def count_matches(tokens, needles):
count = 0
for token in tokens:
for needle in needles:
if needle in token:
count += 1
return count

437
gitmojis.json Normal file
View File

@ -0,0 +1,437 @@
{
"gitmojis":[
{
"emoji":"🎨",
"entity":"🎨",
"code":":art:",
"description":"Improving structure / format of the code.",
"name":"art"
},
{
"emoji":"⚡️",
"entity":"⚡",
"code":":zap:",
"description":"Improving performance.",
"name":"zap"
},
{
"emoji":"🔥",
"entity":"🔥",
"code":":fire:",
"description":"Removing code or files.",
"name":"fire"
},
{
"emoji":"🐛",
"entity":"🐛",
"code":":bug:",
"description":"Fixing a bug.",
"name":"bug"
},
{
"emoji": "🚑",
"entity": "🚑",
"code": ":ambulance:",
"description": "Critical hotfix.",
"name": "ambulance"
},
{
"emoji":"✨",
"entity":"✨",
"code":":sparkles:",
"description":"Introducing new features.",
"name":"sparkles"
},
{
"emoji":"📝",
"entity":"📝",
"code":":memo:",
"description":"Writing docs.",
"name":"memo"
},
{
"emoji":"🚀",
"entity":"🚀",
"code":":rocket:",
"description":"Deploying stuff.",
"name":"rocket"
},
{
"emoji":"💄",
"entity":"&#ff99cc;",
"code":":lipstick:",
"description":"Updating the UI and style files.",
"name":"lipstick"
},
{
"emoji":"🎉",
"entity":"🎉",
"code":":tada:",
"description":"Initial commit.",
"name":"tada"
},
{
"emoji":"✅",
"entity":"✅",
"code":":white_check_mark:",
"description":"Adding tests.",
"name":"white-check-mark"
},
{
"emoji":"🔒",
"entity":"🔒",
"code":":lock:",
"description":"Fixing security issues.",
"name":"lock"
},
{
"emoji":"🍎",
"entity":"🍎",
"code":":apple:",
"description":"Fixing something on macOS.",
"name":"apple"
},
{
"emoji":"🐧",
"entity":"🐧",
"code":":penguin:",
"description":"Fixing something on Linux.",
"name":"penguin"
},
{
"emoji":"🏁",
"entity":"🏁",
"code":":checkered_flag:",
"description":"Fixing something on Windows.",
"name":"checkered-flag"
},
{
"emoji":"🤖",
"entity":"🤖",
"code":":robot:",
"description":"Fixing something on Android.",
"name":"robot"
},
{
"emoji":"🍏",
"entity":"🍏",
"code":":green_apple:",
"description":"Fixing something on iOS.",
"name":"green-apple"
},
{
"emoji":"🔖",
"entity":"🔖",
"code":":bookmark:",
"description":"Releasing / Version tags.",
"name":"bookmark"
},
{
"emoji":"🚨",
"entity":"🚨",
"code":":rotating_light:",
"description":"Removing linter warnings.",
"name":"rotating-light"
},
{
"emoji":"🚧",
"entity":"🚧",
"code":":construction:",
"description":"Work in progress.",
"name":"construction"
},
{
"emoji":"💚",
"entity":"💚",
"code":":green_heart:",
"description":"Fixing CI Build.",
"name":"green-heart"
},
{
"emoji":"⬇️",
"entity":"⬇️",
"code":":arrow_down:",
"description":"Downgrading dependencies.",
"name":"arrow-down"
},
{
"emoji":"⬆️",
"entity":"⬆️",
"code":":arrow_up:",
"description":"Upgrading dependencies.",
"name":"arrow-up"
},
{
"emoji": "📌",
"entity": "📌",
"code": ":pushpin:",
"description": "Pinning dependencies to specific versions.",
"name": "pushpin"
},
{
"emoji":"👷",
"entity":"👷",
"code":":construction_worker:",
"description":"Adding CI build system.",
"name":"construction-worker"
},
{
"emoji":"📈",
"code":":chart_with_upwards_trend:",
"description":"Adding analytics or tracking code.",
"name":"chart-with-upwards-trend"
},
{
"emoji":"♻️",
"entity":"♲",
"code":":recycle:",
"description":"Refactoring code.",
"name":"recycle"
},
{
"emoji":"🐳",
"entity":"🐳",
"code":":whale:",
"description":"Work about Docker.",
"name":"whale"
},
{
"emoji":"",
"entity":"➕",
"code":":heavy_plus_sign:",
"description":"Adding a dependency.",
"name":"heavy-plus-sign"
},
{
"emoji":"",
"entity":"➖",
"code":":heavy_minus_sign:",
"description":"Removing a dependency.",
"name":"heavy-minus-sign"
},
{
"emoji":"🔧",
"entity":"🔧",
"code":":wrench:",
"description":"Changing configuration files.",
"name":"wrench"
},
{
"emoji": "🌐",
"entity": "🌐",
"code": ":globe_with_meridians:",
"description": "Internationalization and localization.",
"name": "globe-with-meridians"
},
{
"emoji":"✏️",
"entity":"",
"code":":pencil2:",
"description":"Fixing typos.",
"name":"pencil"
},
{
"emoji":"💩",
"entity":"",
"code":":hankey:",
"description":"Writing bad code that needs to be improved.",
"name":"hankey"
},
{
"emoji":"⏪",
"entity":"⏪",
"code":":rewind:",
"description":"Reverting changes.",
"name":"rewind"
},
{
"emoji":"🔀",
"entity":"🔀",
"code":":twisted_rightwards_arrows:",
"description":"Merging branches.",
"name":"twisted-rightwards-arrows"
},
{
"emoji":"📦",
"entity":"&#1F4E6;",
"code":":package:",
"description":"Updating compiled files or packages.",
"name":"package"
},
{
"emoji":"👽",
"entity":"&#1F47D;",
"code":":alien:",
"description":"Updating code due to external API changes.",
"name":"alien"
},
{
"emoji":"🚚",
"entity":"&#1F69A;",
"code":":truck:",
"description":"Moving or renaming files.",
"name":"truck"
},
{
"emoji":"📄",
"entity":"&#1F4C4;",
"code":":page_facing_up:",
"description":"Adding or updating license.",
"name":"page-facing-up"
},
{
"emoji":"💥",
"entity":"💥",
"code":":boom:",
"description":"Introducing breaking changes.",
"name":"boom"
},
{
"emoji":"🍱",
"entity":"&#1F371",
"code":":bento:",
"description":"Adding or updating assets.",
"name":"bento"
},
{
"emoji":"👌",
"entity":"👌",
"code":":ok_hand:",
"description":"Updating code due to code review changes.",
"name":"ok-hand"
},
{
"emoji": "♿️",
"entity":"♿",
"code": ":wheelchair:",
"description":"Improving accessibility.",
"name":"wheelchair"
},
{
"emoji": "💡",
"entity":"💡",
"code": ":bulb:",
"description":"Documenting source code.",
"name":"bulb"
},
{
"emoji": "🍻",
"entity":"🍻",
"code": ":beers:",
"description": "Writing code drunkenly.",
"name":"beers"
},
{
"emoji": "💬",
"entity":"💬",
"code": ":speech_balloon:",
"description": "Updating text and literals.",
"name":"speech-balloon"
},
{
"emoji": "🗃",
"entity":"🗃",
"code": ":card_file_box:",
"description": "Performing database related changes.",
"name":"card-file-box"
},
{
"emoji":"🔊",
"entity":"🔊",
"code":":loud_sound:",
"description":"Adding logs.",
"name":"loud-sound"
},
{
"emoji":"🔇",
"entity":"🔇",
"code":":mute:",
"description":"Removing logs.",
"name":"mute"
},
{
"emoji": "👥",
"entity": "👥",
"code": ":busts_in_silhouette:",
"description": "Adding contributor(s).",
"name": "busts-in-silhouette"
},
{
"emoji": "🚸",
"entity": "🚸",
"code": ":children_crossing:",
"description": "Improving user experience / usability.",
"name": "children-crossing"
},
{
"emoji": "🏗",
"entity": "&#1f3d7;",
"code": ":building_construction:",
"description": "Making architectural changes.",
"name": "building-construction"
},
{
"emoji": "📱",
"entity": "📱" ,
"code": ":iphone:",
"description": "Working on responsive design.",
"name": "iphone"
},
{
"emoji": "🤡",
"entity": "🤡" ,
"code": ":clown_face:",
"description": "Mocking things.",
"name": "clown-face"
},
{
"emoji": "🥚",
"entity": "🥚",
"code": ":egg:",
"description": "Adding an easter egg.",
"name": "egg"
},
{
"emoji": "🙈",
"entity": "&#8bdfe7;" ,
"code": ":see_no_evil:",
"description": "Adding or updating a .gitignore file",
"name": "see-no-evil"
},
{
"emoji": "📸",
"entity": "📸" ,
"code": ":camera_flash:",
"description": "Adding or updating snapshots",
"name": "camera-flash"
},
{
"emoji": "⚗",
"entity": "📸" ,
"code": ":alembic:",
"description": "Experimenting new things",
"name": "alembic"
},
{
"emoji": "🔍",
"entity": "🔍" ,
"code": ":mag:",
"description": "Improving SEO",
"name": "mag"
},
{
"emoji":"☸️",
"entity":"☸",
"code":":wheel_of_dharma:",
"description":"Work about Kubernetes",
"name":"wheel-of-dharma"
},
{
"emoji": "🏷️",
"entity": "🏷",
"code": ":label:",
"description": "Adding or updating types (Flow, TypeScript)",
"name": "label"
}
]
}