# HG changeset patch
# Node ID dff3391de734
# Parent  ece8ff9e2b2a
diff --git a/hugo/data/plugins.json b/hugo/data/plugins.json
--- a/hugo/data/plugins.json
+++ b/hugo/data/plugins.json
@@ -1,1494 +1,2117 @@
 [
   {
     "heading": "Amazon Chime",
+    "homepage": "https://github.com/awslabs/pidgin-chime/",
+    "info": "Online meeting and video conferencing",
     "maintainer": "Amazon Web Services - Labs",
-    "type": "Protocol",
-    "info": "Online meeting and video conferencing",
-    "homepage": "https://github.com/awslabs/pidgin-chime/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/awslabs/pidgin-chime/",
+    "type": "Protocol"
   },
   {
     "heading": "Battle.net Classic",
+    "homepage": "https://github.com/nmbook/pidgin-libbnet/",
+    "info": "Blizzard's gaming network: notably for StarCraft, Diablo II, and WarCraft III",
     "maintainer": "nmbook",
-    "type": "Protocol",
-    "info": "Blizzard's gaming network: notably for StarCraft, Diablo II, and WarCraft III",
-    "homepage": "https://github.com/nmbook/pidgin-libbnet/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/nmbook/pidgin-libbnet/",
+    "type": "Protocol"
   },
   {
     "heading": "Battle.net v2",
+    "homepage": "https://github.com/EionRobb/purple-battlenet#readme",
+    "info": "Blizzard's gaming network for WoW, Overwatch and others",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/purple-battlenet/raw/master/battlenet48.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Blizzard's gaming network for WoW, Overwatch and others",
-    "homepage": "https://github.com/EionRobb/purple-battlenet#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-battlenet",
+    "type": "Protocol"
   },
   {
     "heading": "Campfire",
+    "homepage": "https://github.com/jrfoell/campfire-libpurple/",
+    "info": "Protocol plugin for Basecamp's Campfire IM",
     "logo": "https://github.com/jrfoell/campfire-libpurple/raw/master/campfire48.png",
     "maintainer": "jrfoell",
-    "type": "Protocol",
-    "info": "Protocol plugin for Basecamp's Campfire IM",
-    "homepage": "https://github.com/jrfoell/campfire-libpurple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/jrfoell/campfire-libpurple/",
+    "type": "Protocol"
   },
   {
     "heading": "Deltachat",
+    "homepage": "https://github.com/ccpp/deltachat-purple/",
+    "info": "IM over email",
     "maintainer": "ccpp",
-    "type": "Protocol",
-    "info": "IM over email",
-    "homepage": "https://github.com/ccpp/deltachat-purple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/ccpp/deltachat-purple/",
+    "type": "Protocol"
   },
   {
     "heading": "Discord",
+    "homepage": "https://github.com/EionRobb/purple-discord/#readme",
+    "info": "Text chat for gamers",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Text chat for gamers",
-    "homepage": "https://github.com/EionRobb/purple-discord/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-discord/",
+    "type": "Protocol"
   },
   {
     "heading": "Docker",
+    "homepage": "https://github.com/samuelkarp/purple-docker/",
+    "info": "Send stdin commands to Docker containers",
     "maintainer": "samuelkarp",
-    "type": "Protocol",
-    "info": "Send stdin commands to Docker containers",
-    "homepage": "https://github.com/samuelkarp/purple-docker/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/samuelkarp/purple-docker/",
+    "type": "Protocol"
   },
   {
     "heading": "F-List",
+    "homepage": "https://github.com/fchat-pidgin/fchat-pidgin#readme",
+    "info": "F-List roleplaying community",
     "maintainer": "fchat-pidgin",
-    "type": "Protocol",
-    "info": "F-List roleplaying community",
-    "homepage": "https://github.com/fchat-pidgin/fchat-pidgin#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/fchat-pidgin/fchat-pidgin",
+    "type": "Protocol"
   },
   {
     "heading": "Facebook",
+    "homepage": "https://github.com/dequis/purple-facebook/wiki/",
+    "info": "Facebook chat",
     "isTrusted": true,
     "maintainer": "dequis",
-    "type": "Protocol",
-    "info": "Facebook chat",
-    "homepage": "https://github.com/dequis/purple-facebook/wiki/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/dequis/purple-facebook/",
+    "type": "Protocol"
   },
   {
     "heading": "Gammu",
+    "homepage": "https://github.com/EionRobb/purple-gammu/#readme",
+    "info": "Send SMS through your feature phone via usb/serial/bluetooth/irda",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/purple-gammu/raw/master/icons/48/gammu.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Send SMS through your feature phone via usb/serial/bluetooth/irda",
-    "homepage": "https://github.com/EionRobb/purple-gammu/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-gammu/",
+    "type": "Protocol"
   },
   {
     "heading": "Google Chat",
+    "homepage": "https://github.com/EionRobb/purple-googlechat#readme",
+    "info": "Alternative plugin for Google Chat",
     "isTrusted": true,
     "logo": "https://repository-images.githubusercontent.com/378872883/787b0600-dabb-11eb-8e66-5d2255efc889",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Alternative plugin for Google Chat",
-    "homepage": "https://github.com/EionRobb/purple-googlechat#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-googlechat",
+    "type": "Protocol"
   },
   {
     "heading": "GroupMe",
+    "homepage": "https://notabug.org/alyssa/groupme-purple/",
+    "info": "GroupMe group messaging",
     "isTrusted": true,
     "maintainer": "Alyssa Rosenzweig",
-    "type": "Protocol",
-    "info": "GroupMe group messaging",
-    "homepage": "https://notabug.org/alyssa/groupme-purple/"
+    "repo_type": "git",
+    "repo_url": "https://notabug.org/alyssa/groupme-purple/",
+    "type": "Protocol"
   },
   {
     "heading": "Hangouts",
+    "homepage": "https://github.com/EionRobb/purple-hangouts#readme",
+    "info": "Alternative plugin for Google Hangouts",
     "isTrusted": true,
     "logo": "https://user-images.githubusercontent.com/1063865/87138135-18131780-c2f2-11ea-9579-3dfbb7d858fb.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Alternative plugin for Google Hangouts",
-    "homepage": "https://github.com/EionRobb/purple-hangouts#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-hangouts",
+    "type": "Protocol"
   },
   {
     "heading": "Heroes of Newerth",
+    "homepage": "https://github.com/theli-ua/honpurple/",
+    "info": "Online video game",
     "logo": "https://github.com/theli-ua/honpurple/raw/master/data/pixmaps/pidgin/emblems/16/hon_ingame.png",
     "maintainer": "theli-ua",
-    "type": "Protocol",
-    "info": "Online video game",
-    "homepage": "https://github.com/theli-ua/honpurple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/theli-ua/honpurple/",
+    "type": "Protocol"
   },
   {
     "heading": "ICQ WIM (IcyQue)",
+    "homepage": "https://github.com/EionRobb/icyque/",
+    "info": "Replacement ICQ plugin",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Replacement ICQ plugin",
-    "homepage": "https://github.com/EionRobb/icyque/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/icyque/",
+    "type": "Protocol"
   },
   {
     "heading": "Internet Citizen's Band (ICB)",
+    "homepage": "https://github.com/pelotasplus/pidgin-icb/",
+    "info": "ICB",
     "logo": "https://github.com/pelotasplus/pidgin-icb/raw/master/icb_48.png",
     "maintainer": "pelotasplus",
-    "type": "Protocol",
-    "info": "ICB",
-    "homepage": "https://github.com/pelotasplus/pidgin-icb/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/pelotasplus/pidgin-icb/",
+    "type": "Protocol"
   },
   {
     "heading": "JRC",
+    "homepage": "https://github.com/telyn/prpl-jrc/",
+    "info": "libpurple implementation of a JRChat client",
     "maintainer": "telyn",
-    "type": "Protocol",
-    "info": "libpurple implementation of a JRChat client",
-    "homepage": "https://github.com/telyn/prpl-jrc/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/telyn/prpl-jrc/",
+    "type": "Protocol"
   },
   {
     "heading": "LINE",
+    "homepage": "https://github.com/supersonictw/purple-line#readme",
+    "info": "Mobile SMS replacement",
     "maintainer": "supersonictw",
-    "type": "Protocol",
-    "info": "Mobile SMS replacement",
-    "homepage": "https://github.com/supersonictw/purple-line#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/supersonictw/purple-line",
+    "type": "Protocol"
   },
   {
     "heading": "Mail.ru Agent (mrim-prpl)",
+    "homepage": "https://bitbucket.org/mrim-prpl-team/mrim-prpl/src/master/",
+    "info": "Russian network",
     "logo": "https://bitbucket.org/mrim-prpl-team/mrim-prpl/raw/4e5df9df3912d37e66959dbaec0eb6f278e5a108/pixmaps/mrim48.png",
     "maintainer": "mrim-prpl-team",
-    "type": "Protocol",
-    "info": "Russian network",
-    "homepage": "https://bitbucket.org/mrim-prpl-team/mrim-prpl/src/master/"
+    "repo_type": "git",
+    "repo_url": "https://bitbucket.org/mrim-prpl-team/mrim-prpl/src/master/",
+    "type": "Protocol"
   },
   {
     "heading": "Mail.ru Agent (pidgin-mra)",
+    "homepage": "https://github.com/dreadatour/pidgin-mra/",
+    "info": "Russian network",
     "logo": "https://github.com/dreadatour/pidgin-mra/raw/master/img/mra48.png",
     "maintainer": "dreadatour",
-    "type": "Protocol",
-    "info": "Russian network",
-    "homepage": "https://github.com/dreadatour/pidgin-mra/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/dreadatour/pidgin-mra/",
+    "type": "Protocol"
   },
   {
     "heading": "Matrix",
+    "homepage": "https://github.com/matrix-org/purple-matrix/#readme",
+    "info": "Distributed IM",
     "isTrusted": true,
     "logo": "https://github.com/matrix-org/purple-matrix/raw/master/matrix-48px.png",
     "maintainer": "matrix-org",
-    "type": "Protocol",
-    "info": "Distributed IM",
-    "homepage": "https://github.com/matrix-org/purple-matrix/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/matrix-org/purple-matrix/",
+    "type": "Protocol"
   },
   {
     "heading": "Mattermost",
+    "homepage": "https://github.com/EionRobb/purple-mattermost/#readme",
+    "info": "Open-source replacement for Slack",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/purple-mattermost/raw/master/mattermost48.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Open-source replacement for Slack",
-    "homepage": "https://github.com/EionRobb/purple-mattermost/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-mattermost/",
+    "type": "Protocol"
   },
   {
     "heading": "Microblog",
+    "homepage": "https://github.com/fr0nk/microblog-purple2/",
+    "info": "Twitter/Identica/Laconica updates",
     "maintainer": "fr0nk",
-    "type": "Protocol",
-    "info": "Twitter/Identica/Laconica updates",
-    "homepage": "https://github.com/fr0nk/microblog-purple2/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/fr0nk/microblog-purple2/",
+    "type": "Protocol"
   },
   {
     "heading": "msn-pecan",
+    "homepage": "https://github.com/felipec/msn-pecan/",
+    "info": "Alternative MSN access",
     "maintainer": "felipec",
-    "type": "Protocol",
-    "info": "Alternative MSN access",
-    "homepage": "https://github.com/felipec/msn-pecan/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/felipec/msn-pecan/",
+    "type": "Protocol"
   },
   {
     "heading": "Mumble",
+    "homepage": "https://bitbucket.org/petteripitkanen/purple-mumble/",
+    "info": "Gaming voice chat",
     "maintainer": "petteripitkanen",
-    "type": "Protocol",
-    "info": "Gaming voice chat",
-    "homepage": "https://bitbucket.org/petteripitkanen/purple-mumble/"
+    "repo_type": "git",
+    "repo_url": "https://bitbucket.org/petteripitkanen/purple-mumble/",
+    "type": "Protocol"
   },
   {
     "heading": "NateOn",
+    "homepage": "https://github.com/kaisyu/pidgin-nateon/",
+    "info": "Korean network",
     "maintainer": "kaisyu",
-    "type": "Protocol",
-    "info": "Korean network",
-    "homepage": "https://github.com/kaisyu/pidgin-nateon/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/kaisyu/pidgin-nateon/",
+    "type": "Protocol"
   },
   {
     "heading": "NetNexus",
+    "homepage": "https://github.com/EionRobb/netnexus-pidgin/",
+    "info": "netnexus.com's chatrooms",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "netnexus.com's chatrooms",
-    "homepage": "https://github.com/EionRobb/netnexus-pidgin/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/netnexus-pidgin/",
+    "type": "Protocol"
   },
   {
     "heading": "Netsoul",
+    "homepage": "https://github.com/wlallemand/netsoul-purple/",
+    "info": "French network",
     "logo": "https://github.com/wlallemand/netsoul-purple/raw/master/pixmaps/48/netsoul.png",
     "maintainer": "wlallemand",
-    "type": "Protocol",
-    "info": "French network",
-    "homepage": "https://github.com/wlallemand/netsoul-purple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/wlallemand/netsoul-purple/",
+    "type": "Protocol"
   },
   {
     "heading": "Ning",
+    "homepage": "https://github.com/EionRobb/pidgin-ning/",
+    "info": "Ning-based social networks",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Ning-based social networks",
-    "homepage": "https://github.com/EionRobb/pidgin-ning/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-ning/",
+    "type": "Protocol"
   },
   {
     "heading": "OkCupid",
+    "homepage": "https://github.com/EionRobb/okcupid-pidgin/",
+    "info": "OKCupid dating website",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/okcupid-pidgin/raw/master/icons/48/okcupid.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "OKCupid dating website",
-    "homepage": "https://github.com/EionRobb/okcupid-pidgin/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/okcupid-pidgin/",
+    "type": "Protocol"
   },
   {
     "heading": "Omegle",
+    "homepage": "https://github.com/EionRobb/pidgin-omegle/",
+    "info": "omegle.com's web-based random chat",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "omegle.com's web-based random chat",
-    "homepage": "https://github.com/EionRobb/pidgin-omegle/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-omegle/",
+    "type": "Protocol"
   },
   {
     "heading": "Pidgin-Twitter",
+    "homepage": "http://www.honeyplanet.jp/pidgin-twitter/",
+    "info": "Twitter plugin",
     "maintainer": "honeyplanet",
-    "type": "Protocol",
-    "info": "Twitter plugin",
-    "homepage": "http://www.honeyplanet.jp/pidgin-twitter/"
+    "repo_type": "hg",
+    "repo_url": "http://hg.honeyplanet.jp/pidgin-twitter",
+    "type": "Protocol"
   },
   {
     "heading": "PubNub",
+    "homepage": "https://github.com/pubnub/c/tree/master/examples/libpurple/",
+    "info": "Real-time messaging system",
     "logo": "https://github.com/pubnub/c/raw/master/examples/libpurple/pubnub48.png",
     "maintainer": "pubnub",
-    "type": "Protocol",
-    "info": "Real-time messaging system",
-    "homepage": "https://github.com/pubnub/c/tree/master/examples/libpurple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/pubnub/c",
+    "type": "Protocol"
   },
   {
     "heading": "Pulse SMS",
+    "homepage": "https://github.com/EionRobb/purple-pulsesms/",
+    "info": "SMS messaging via your Android phone",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/purple-pulsesms/raw/master/pulsesms48.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "SMS messaging via your Android phone",
-    "homepage": "https://github.com/EionRobb/purple-pulsesms/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-pulsesms/",
+    "type": "Protocol"
   },
   {
     "heading": "purple-feed",
+    "homepage": "https://github.com/moraxy/libpurple-feed/",
+    "info": "RSS and Atom feed reader",
     "logo": "https://github.com/moraxy/libpurple-feed/raw/master/feed48.png",
     "maintainer": "moraxy",
-    "type": "Protocol",
-    "info": "RSS and Atom feed reader",
-    "homepage": "https://github.com/moraxy/libpurple-feed/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/moraxy/libpurple-feed/",
+    "type": "Protocol"
   },
   {
     "heading": "Pushbullet",
+    "homepage": "https://github.com/EionRobb/pidgin-pushbullet/",
+    "info": "Send pushes and SMS (Android-only) via Pushbullet",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/pidgin-pushbullet/raw/master/icons/pushbullet48.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Send pushes and SMS (Android-only) via Pushbullet",
-    "homepage": "https://github.com/EionRobb/pidgin-pushbullet/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-pushbullet/",
+    "type": "Protocol"
   },
   {
     "heading": "QQ (libqq-pidgin)",
+    "homepage": "https://code.google.com/archive/p/libqq-pidgin/",
+    "info": "QQ protocol support",
     "maintainer": "libqq-pidgin",
-    "type": "Protocol",
-    "info": "QQ protocol support",
-    "homepage": "https://code.google.com/archive/p/libqq-pidgin/"
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/libqq-pidgin/source-archive.zip",
+    "type": "Protocol"
   },
   {
     "heading": "QQ (pidgin-lwqq)",
+    "homepage": "https://github.com/xiehuc/pidgin-lwqq/",
+    "info": "QQ protocol support (Based on WebQQ)",
     "logo": "https://github.com/xiehuc/pidgin-lwqq/raw/master/res/48.png",
     "maintainer": "xiehuc",
-    "type": "Protocol",
-    "info": "QQ protocol support (Based on WebQQ)",
-    "homepage": "https://github.com/xiehuc/pidgin-lwqq/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/xiehuc/pidgin-lwqq/",
+    "type": "Protocol"
   },
   {
     "heading": "QQ (purple-oicq)",
+    "homepage": "https://github.com/axon-oicq/purple-oicq",
+    "info": "A binding to takayama-lily's OICQ library.",
     "logo": "https://raw.githubusercontent.com/axon-oicq/purple-oicq/main/oicq-48px.png",
     "maintainer": "axon-oicq",
-    "type": "Protocol",
-    "info": "A binding to takayama-lily's OICQ library.",
-    "homepage": "https://github.com/axon-oicq/purple-oicq"
+    "repo_type": "git",
+    "repo_url": "https://github.com/axon-oicq/purple-oicq",
+    "type": "Protocol"
   },
   {
     "heading": "Rediffbol",
+    "homepage": "https://rediffbol-prpl.sourceforge.io/",
+    "info": "Indian network",
     "maintainer": "Arnold Noronha",
-    "type": "Protocol",
-    "info": "Indian network",
-    "homepage": "https://rediffbol-prpl.sourceforge.io/"
+    "repo_type": "git",
+    "repo_url": "https://git.code.sf.net/p/rediffbol-prpl/code",
+    "type": "Protocol"
   },
   {
     "heading": "Rocket.Chat",
+    "homepage": "https://github.com/EionRobb/purple-rocketchat#readme",
+    "info": "Open-source replacement for Slack",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/purple-rocketchat/raw/master/rocketchat48.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Open-source replacement for Slack",
-    "homepage": "https://github.com/EionRobb/purple-rocketchat#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-rocketchat",
+    "type": "Protocol"
   },
   {
     "heading": "Signal",
+    "homepage": "https://github.com/hoehermann/libpurple-signald/",
+    "info": "Secure mobile messaging",
     "maintainer": "hoehermann",
-    "type": "Protocol",
-    "info": "Secure mobile messaging",
-    "homepage": "https://github.com/hoehermann/libpurple-signald/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/hoehermann/libpurple-signald/",
+    "type": "Protocol"
   },
   {
     "heading": "Skype",
+    "homepage": "https://github.com/EionRobb/skype4pidgin/tree/master/skypeweb/",
+    "info": "Skype IM protocol support",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/skype4pidgin/raw/master/skypeweb/icons/48/skype.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Skype IM protocol support",
-    "homepage": "https://github.com/EionRobb/skype4pidgin/tree/master/skypeweb/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/skype4pidgin/",
+    "type": "Protocol"
   },
   {
     "heading": "Slack",
+    "homepage": "https://github.com/dylex/slack-libpurple/",
+    "info": "Team collaboration tool",
     "logo": "https://github.com/dylex/slack-libpurple/raw/master/img/slack48.png",
     "maintainer": "dylex",
-    "type": "Protocol",
-    "info": "Team collaboration tool",
-    "homepage": "https://github.com/dylex/slack-libpurple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/dylex/slack-libpurple/",
+    "type": "Protocol"
   },
   {
     "heading": "SIPE",
+    "homepage": "https://sipe.sourceforge.io/",
+    "info": "Microsoft Office Communicator, Reuters Messaging",
     "maintainer": "Stefan Becker",
-    "type": "Protocol",
-    "info": "Microsoft Office Communicator, Reuters Messaging",
-    "homepage": "https://sipe.sourceforge.io/"
+    "repo_type": "git",
+    "repo_url": "https://repo.or.cz/siplcs.git",
+    "type": "Protocol"
   },
   {
     "heading": "SMS",
+    "homepage": "https://source.puri.sm/Librem5/purple-mm-sms/",
+    "info": "Purple SMS plugin using ModemManager",
     "logo": "https://source.puri.sm/Librem5/purple-mm-sms/raw/master/icons/mm-sms-48px.png",
     "maintainer": "Librem5",
-    "type": "Protocol",
-    "info": "Purple SMS plugin using ModemManager",
-    "homepage": "https://source.puri.sm/Librem5/purple-mm-sms/"
+    "repo_type": "git",
+    "repo_url": "https://source.puri.sm/Librem5/purple-mm-sms/",
+    "type": "Protocol"
   },
   {
     "heading": "Spinp",
+    "homepage": "https://github.com/farcdev/spinp/",
+    "info": "Decentralised chat",
     "maintainer": "farcdev",
-    "type": "Protocol",
-    "info": "Decentralised chat",
-    "homepage": "https://github.com/farcdev/spinp/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/farcdev/spinp/",
+    "type": "Protocol"
   },
   {
     "heading": "Steam IM (mobile)",
+    "homepage": "https://github.com/EionRobb/pidgin-opensteamworks/tree/master/steam-mobile/",
+    "info": "Steam Friends gaming network",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/pidgin-opensteamworks/raw/master/steam-mobile/steam48.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Steam Friends gaming network",
-    "homepage": "https://github.com/EionRobb/pidgin-opensteamworks/tree/master/steam-mobile/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-opensteamworks/",
+    "type": "Protocol"
   },
   {
     "heading": "Steam IM (native)",
+    "homepage": "https://github.com/seishun/SteamPP/#steampurple",
+    "info": "Steam Friends gaming network",
     "logo": "https://github.com/EionRobb/pidgin-opensteamworks/raw/master/steam-mobile/steam48.png",
     "maintainer": "seishun",
-    "type": "Protocol",
-    "info": "Steam Friends gaming network",
-    "homepage": "https://github.com/seishun/SteamPP/#steampurple"
+    "repo_type": "git",
+    "repo_url": "https://github.com/seishun/SteamPP/",
+    "type": "Protocol"
   },
   {
     "heading": "Teams",
-    "maintainer": "EionRobb",
+    "homepage": "https://github.com/eionrobb/purple-teams#readme",
+    "info": "Microsoft Teams",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/purple-teams/blob/master/icons/48/teams.png?raw=true",
-    "type": "Protocol",
-    "info": "Microsoft Teams",
-    "homepage": "https://github.com/eionrobb/purple-teams#readme"
+    "maintainer": "EionRobb",
+    "repo_type": "git",
+    "repo_url": "https://github.com/eionrobb/purple-teams",
+    "type": "Protocol"
   },
   {
     "heading": "Telegram (original)",
+    "homepage": "https://github.com/majn/telegram-purple/#readme",
+    "info": "Secure messenger",
     "logo": "https://github.com/majn/telegram-purple/raw/master/imgs/telegram48.png",
     "maintainer": "majn",
-    "type": "Protocol",
-    "info": "Secure messenger",
-    "homepage": "https://github.com/majn/telegram-purple/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/majn/telegram-purple/",
+    "type": "Protocol"
   },
   {
     "heading": "Telegram (modern)",
+    "homepage": "https://github.com/ars3niy/tdlib-purple/#readme",
+    "info": "Secure messenger",
     "logo": "https://github.com/ars3niy/tdlib-purple/raw/master/data/telegram48.png",
     "maintainer": "ars3niy",
-    "type": "Protocol",
-    "info": "Secure messenger",
-    "homepage": "https://github.com/ars3niy/tdlib-purple/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/ars3niy/tdlib-purple/",
+    "type": "Protocol"
   },
   {
     "heading": "Threema",
+    "homepage": "https://github.com/hbruintjes/ceema/",
+    "info": "Threema",
     "maintainer": "hbruintjes",
-    "type": "Protocol",
-    "info": "Threema",
-    "homepage": "https://github.com/hbruintjes/ceema/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/hbruintjes/ceema/",
+    "type": "Protocol"
   },
   {
+    "broken": true,
     "heading": "TorChat",
+    "homepage": "https://github.com/prof7bit/TorChat/downloads/",
+    "info": "p2p instant messaging through Tor hidden service tunnels",
     "maintainer": "prof7bit",
-    "type": "Protocol",
-    "info": "p2p instant messaging through Tor hidden service tunnels",
-    "homepage": "https://github.com/prof7bit/TorChat/downloads/",
-    "broken": true
+    "repo_type": "git",
+    "repo_url": "https://github.com/prof7bit/TorChat/",
+    "type": "Protocol"
   },
   {
     "heading": "Tox",
+    "homepage": "https://github.com/EionRobb/tox-prpl",
+    "info": "Secure instant messaging via Tox protocol",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Secure instant messaging via Tox protocol",
-    "homepage": "https://github.com/EionRobb/tox-prpl"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/tox-prpl",
+    "type": "Protocol"
   },
   {
     "heading": "Trillian (IMPP)",
+    "homepage": "https://github.com/Hi-Angel/purple-impp/",
+    "info": "Trillian Astra protocol",
     "maintainer": "Hi-Angel",
-    "type": "Protocol",
-    "info": "Trillian Astra protocol",
-    "homepage": "https://github.com/Hi-Angel/purple-impp/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/Hi-Angel/purple-impp/",
+    "type": "Protocol"
   },
   {
     "heading": "Twitter Protocol",
+    "homepage": "https://github.com/mikeage/prpltwtr/",
+    "info": "Access Twitter (and status.net / identi.ca) feeds like chat rooms",
     "logo": "https://github.com/mikeage/prpltwtr/raw/twitter-json/data/48/prpltwtr.png",
     "maintainer": "mikeage",
-    "type": "Protocol",
-    "info": "Access Twitter (and status.net / identi.ca) feeds like chat rooms",
-    "homepage": "https://github.com/mikeage/prpltwtr/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/mikeage/prpltwtr/",
+    "type": "Protocol"
   },
   {
     "heading": "Wechat",
+    "homepage": "https://github.com/sbwtw/pidgin-wechat/",
+    "info": "Wechat Protocol Support",
     "maintainer": "sbwtw",
-    "type": "Protocol",
-    "info": "Wechat Protocol Support",
-    "homepage": "https://github.com/sbwtw/pidgin-wechat/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/sbwtw/pidgin-wechat/",
+    "type": "Protocol"
   },
   {
     "heading": "WhatsApp",
+    "homepage": "https://github.com/davidgfnet/whatsapp-purple/",
+    "info": "WhatsApp IM protocol",
     "logo": "https://github.com/davidgfnet/whatsapp-purple/raw/master/whatsapp48.png",
     "maintainer": "davidgfnet",
-    "type": "Protocol",
-    "info": "WhatsApp IM protocol",
-    "homepage": "https://github.com/davidgfnet/whatsapp-purple/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/davidgfnet/whatsapp-purple/",
+    "type": "Protocol"
   },
   {
     "heading": "WhatsApp (purple-gowhatsapp)",
+    "homepage": "https://github.com/hoehermann/purple-gowhatsapp/",
+    "info": "WhatsApp IM protocol",
     "maintainer": "hoehermann",
-    "type": "Protocol",
-    "info": "WhatsApp IM protocol",
-    "homepage": "https://github.com/hoehermann/purple-gowhatsapp/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/hoehermann/purple-gowhatsapp/",
+    "type": "Protocol"
   },
   {
     "heading": "WinMX Peer Network",
+    "homepage": "https://sourceforge.net/projects/wpn-gaim-prpl/",
+    "info": "File sharing network",
     "maintainer": "ranma42",
-    "type": "Protocol",
-    "info": "File sharing network",
-    "homepage": "https://sourceforge.net/projects/wpn-gaim-prpl/"
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Protocol"
   },
   {
     "heading": "Yahoo",
+    "homepage": "https://github.com/EionRobb/funyahoo-plusplus/",
+    "info": "Replacement plugin for Yahoo 2016",
     "isTrusted": true,
     "logo": "https://github.com/EionRobb/funyahoo-plusplus/raw/master/icons/48/yahoo.png",
     "maintainer": "EionRobb",
-    "type": "Protocol",
-    "info": "Replacement plugin for Yahoo 2016",
-    "homepage": "https://github.com/EionRobb/funyahoo-plusplus/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/funyahoo-plusplus/",
+    "type": "Protocol"
   },
   {
     "heading": "Authorization Blocker",
+    "homepage": "https://launchpad.net/pidgin-authorization-blocker/",
+    "info": "The plugin blocks the first authorization request of a contact and answers with the order to ask for authorization again. This helps to prevent spam on ICQ accounts.",
     "maintainer": "Konrad Gräfe",
-    "type": "Security and Privacy",
-    "info": "The plugin blocks the first authorization request of a contact and answers with the order to ask for authorization again. This helps to prevent spam on ICQ accounts.",
-    "homepage": "https://launchpad.net/pidgin-authorization-blocker/"
+    "repo_type": "bzr",
+    "repo_url": "lp:pidgin-authorization-blocker",
+    "type": "Security and Privacy"
   },
   {
+    "broken": true,
     "heading": "bOt_tOOls",
+    "homepage": "http://eric.dziewa.com/?p=522",
+    "info": "Configurable plugin for auto-ignoring yahoo spammers",
     "maintainer": "Eric Dziewa",
-    "type": "Security and Privacy",
-    "info": "Configurable plugin for auto-ignoring yahoo spammers",
-    "homepage": "http://eric.dziewa.com/?p=522",
-    "broken": true
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Security and Privacy"
   },
   {
     "heading": "Bot Sentry",
+    "homepage": "https://sourceforge.net/projects/pidgin-bs/",
+    "info": "Stop spam bots",
     "maintainer": "deckrider",
-    "type": "Security and Privacy",
-    "info": "Stop spam bots",
-    "homepage": "https://sourceforge.net/projects/pidgin-bs/"
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/pidgin-bs/code/",
+    "type": "Security and Privacy"
   },
   {
     "heading": "lurch",
+    "homepage": "https://github.com/gkdr/lurch/",
+    "info": "Encrypts XMPP conversations using OMEMO",
     "maintainer": "gkdr",
-    "type": "Security and Privacy",
-    "info": "Encrypts XMPP conversations using OMEMO",
-    "homepage": "https://github.com/gkdr/lurch/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/gkdr/lurch/",
+    "type": "Security and Privacy"
   },
   {
     "heading": "Master Password",
+    "homepage": "https://github.com/kgraefe/pidgin-master-password",
+    "info": "Protects account passwords by a master password. ",
     "maintainer": "Konrad Gräfe",
-    "type": "Security and Privacy",
-    "info": "Protects account passwords by a master password. ",
-    "homepage": "https://github.com/kgraefe/pidgin-master-password"
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-master-password",
+    "type": "Security and Privacy"
   },
   {
+    "broken": true,
     "heading": "Off-the-Record Messaging (OTR)",
+    "homepage": "https://otr.cypherpunks.ca/",
+    "info": "Encrypts conversations and provides security even when keys are compromised",
     "maintainer": "OTR Development Team",
-    "type": "Security and Privacy",
-    "info": "Encrypts conversations and provides security even when keys are compromised",
-    "homepage": "https://otr.cypherpunks.ca/"
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Security and Privacy"
   },
   {
     "heading": "Pidgin-Encryption",
+    "homepage": "https://pidgin-encrypt.sourceforge.io/",
+    "info": "Encrypts conversations using stored RSA keys",
     "maintainer": "obobo",
-    "type": "Security and Privacy",
-    "info": "Encrypts conversations using stored RSA keys",
-    "homepage": "https://pidgin-encrypt.sourceforge.io/"
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/pidgin-encrypt/code/trunk",
+    "type": "Security and Privacy"
   },
   {
     "heading": "pidgin-gnome-keyring",
+    "homepage": "https://github.com/aebrahim/pidgin-gnome-keyring/",
+    "info": "Stores account passwords in the system keyring instead of as plaintext",
     "maintainer": "aebrahim",
-    "type": "Security and Privacy",
-    "info": "Stores account passwords in the system keyring instead of as plaintext",
-    "homepage": "https://github.com/aebrahim/pidgin-gnome-keyring/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/aebrahim/pidgin-gnome-keyring/",
+    "type": "Security and Privacy"
   },
   {
     "heading": "Pidgin-GPG",
+    "homepage": "https://github.com/segler-alex/Pidgin-GPG/wiki/",
+    "info": "Pidgin GPG/OPENPGP (XEP-0027) Plugin",
     "maintainer": "Alex Segler",
-    "type": "Security and Privacy",
-    "info": "Pidgin GPG/OPENPGP (XEP-0027) Plugin",
-    "homepage": "https://github.com/segler-alex/Pidgin-GPG/wiki/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/segler-alex/Pidgin-GPG/",
+    "type": "Security and Privacy"
   },
   {
     "heading": "Pidgin-Paranoia",
+    "homepage": "https://pidgin-paranoia.sourceforge.io/",
+    "info": "Encrypts conversations using one-time pads",
     "maintainer": "boognu, nowic",
-    "type": "Security and Privacy",
-    "info": "Encrypts conversations using one-time pads",
-    "homepage": "https://pidgin-paranoia.sourceforge.io/"
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/pidgin-paranoia/code/trunk",
+    "type": "Security and Privacy"
   },
   {
     "heading": "Pidgin-privacy-please",
-    "maintainer": "cockroach",
-    "type": "Security and Privacy",
+    "homepage": "https://github.com/hwms/pidgin-privacy-please",
     "info": "Stop spam bots",
-    "homepage": "http://freshmeat.sourceforge.net/projects/pidgin-pp/"
+    "maintainer": "hwms",
+    "repo_type": "git",
+    "repo_url": "https://github.com/hwms/pidgin-privacy-please",
+    "type": "Security and Privacy"
   },
   {
     "heading": "pidgin-wincred",
+    "homepage": "https://github.com/aebrahim/pidgin-wincred/",
+    "info": "Save passwords as windows credentials instead of as plaintext",
     "maintainer": "aebrahim",
-    "type": "Security and Privacy",
-    "info": "Save passwords as windows credentials instead of as plaintext",
-    "homepage": "https://github.com/aebrahim/pidgin-wincred/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/aebrahim/pidgin-wincred/",
+    "type": "Security and Privacy"
   },
   {
     "heading": "Audible Alerts",
+    "homepage": "https://sourceforge.net/projects/audiblealerts/",
+    "info": "Audible notification of a received IM by reading the buddy's screen name",
     "maintainer": "meiser024",
-    "type": "Notifications",
-    "info": "Audible notification of a received IM by reading the buddy's screen name",
-    "homepage": "https://sourceforge.net/projects/audiblealerts/"
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/audiblealerts/code/",
+    "type": "Notifications"
   },
   {
     "heading": "Bluetooth Notifier",
+    "homepage": "https://code.google.com/archive/p/pidgin-bt/",
+    "info": "Sends new chat messages directly to your cell phone or any other Bluetooth-enabled device",
     "maintainer": "holthuis",
-    "type": "Notifications",
-    "info": "Sends new chat messages directly to your cell phone or any other Bluetooth-enabled device",
-    "homepage": "https://code.google.com/archive/p/pidgin-bt/"
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-bt/source-archive.zip",
+    "type": "Notifications"
   },
   {
     "heading": "Chatpop",
+    "homepage": "https://github.com/teleshoes/chatpop-pidgin/",
+    "info": "Show open chats when receiving a persistent chat message",
     "maintainer": "teleshoes",
-    "type": "Notifications",
-    "info": "Show open chats when receiving a persistent chat message",
-    "homepage": "https://github.com/teleshoes/chatpop-pidgin/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/teleshoes/chatpop-pidgin/",
+    "type": "Notifications"
   },
   {
     "heading": "Command-execute",
+    "homepage": "https://github.com/tymm/command-execute/",
+    "info": "Executes a command on a new message and works for both Pidgin and Finch",
     "maintainer": "tymm",
-    "type": "Notifications",
-    "info": "Executes a command on a new message and works for both Pidgin and Finch",
-    "homepage": "https://github.com/tymm/command-execute/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/tymm/command-execute/",
+    "type": "Notifications"
   },
   {
     "heading": "Command-notification",
+    "homepage": "https://guysoft.wordpress.com/2010/02/14/pidgin-x-chat-plugin-new-message/",
+    "info": "Based off Led-notification this plugin will execute a command on receiving a new message ",
     "maintainer": "GuySoft",
-    "type": "Notifications",
-    "info": "Based off Led-notification this plugin will execute a command on receiving a new message ",
-    "homepage": "https://guysoft.wordpress.com/2010/02/14/pidgin-x-chat-plugin-new-message/"
+    "repo_type": "source",
+    "repo_url": "http://gnet.homelinux.com/files/command-notification-0.1.tar.gz",
+    "type": "Notifications"
   },
   {
     "heading": "pidgin-im-gnome-shell-extension",
+    "homepage": "https://github.com/muffinmad/pidgin-im-gnome-shell-extension/#readme",
+    "info": "Make Pidgin IM conversations appear in the Gnome Shell message tray",
     "maintainer": "muffinmad",
-    "type": "Notifications",
-    "info": "Make Pidgin IM conversations appear in the Gnome Shell message tray",
-    "homepage": "https://github.com/muffinmad/pidgin-im-gnome-shell-extension/#readme"
+    "repo_type": "git",
+    "repo_url": "https://github.com/muffinmad/pidgin-im-gnome-shell-extension/",
+    "type": "Notifications"
   },
   {
     "heading": "Guifications",
+    "homepage": "https://keep.imfreedom.org/grim/guifications2/",
+    "info": "Provides toaster popup notifications",
     "isTrusted": true,
     "maintainer": "Gary Kramlich",
-    "type": "Notifications",
-    "info": "Provides toaster popup notifications",
-    "homepage": "https://keep.imfreedom.org/grim/guifications2/"
+    "repo_type": "hg",
+    "repo_url": "https://keep.imfreedom.org/grim/guifications2/",
+    "type": "Notifications"
   },
   {
     "heading": "IM Pusher",
+    "homepage": "https://github.com/coolwanglu/pidgin-im-pusher/",
+    "info": "An extension of Notifo Notifications, pushes your messages at specified statuses (e.g. when you are away), two push services (notifo & pushme.to) are supported",
     "maintainer": "coolwanglu",
-    "type": "Notifications",
-    "info": "An extension of Notifo Notifications, pushes your messages at specified statuses (e.g. when you are away), two push services (notifo & pushme.to) are supported",
-    "homepage": "https://github.com/coolwanglu/pidgin-im-pusher/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/coolwanglu/pidgin-im-pusher/",
+    "type": "Notifications"
   },
   {
+    "broken": true,
     "heading": "Keyboard LED Notification",
+    "homepage": "https://sites.google.com/site/pidginlednotification/",
+    "info": "LegLedNot is a keyboard LED notification plugin for Pidgin",
     "maintainer": "Gabriel Cséfalvay",
-    "type": "Notifications",
-    "info": "LegLedNot is a keyboard LED notification plugin for Pidgin",
-    "homepage": "https://sites.google.com/site/pidginlednotification/",
-    "broken": true
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Notifications"
   },
   {
     "heading": "KNotifications",
+    "homepage": "https://code.google.com/archive/p/pidgin-knotifications/",
+    "info": "Perl plugin that provides KDE 4 notifications",
     "maintainer": "mrovi",
-    "type": "Notifications",
-    "info": "Perl plugin that provides KDE 4 notifications",
-    "homepage": "https://code.google.com/archive/p/pidgin-knotifications/"
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-knotifications/source-archive.zip",
+    "type": "Notifications"
   },
   {
     "heading": "Led-notification",
+    "homepage": "https://sites.google.com/site/simohmattila/led-notification/",
+    "info": "Provides notifications with laptops' extra LEDs and similar",
     "maintainer": "Simo Mattila",
-    "type": "Notifications",
-    "info": "Provides notifications with laptops' extra LEDs and similar",
-    "homepage": "https://sites.google.com/site/simohmattila/led-notification/"
+    "repo_type": "source",
+    "repo_url": "https://sites.google.com/site/simohmattila/led-notification-0.1.tar.bz2",
+    "type": "Notifications"
   },
   {
     "heading": "led-notification",
+    "homepage": "https://github.com/Sitwon/led-notification/",
+    "info": "Fork of Led-notification. Adds support for ThinkPads",
     "maintainer": "Sitwon",
-    "type": "Notifications",
-    "info": "Fork of Led-notification. Adds support for ThinkPads",
-    "homepage": "https://github.com/Sitwon/led-notification/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/Sitwon/led-notification/",
+    "type": "Notifications"
   },
   {
     "heading": "MX610-notification",
+    "homepage": "https://sites.google.com/site/simohmattila/mx610-notification/",
+    "info": "Provides notifications with Logitech MX610's IM led",
     "maintainer": "Simo Mattila",
-    "type": "Notifications",
-    "info": "Provides notifications with Logitech MX610's IM led",
-    "homepage": "https://sites.google.com/site/simohmattila/mx610-notification/"
+    "repo_type": "source",
+    "repo_url": "https://sites.google.com/site/simohmattila/mx610-notification-0.5.tar.bz2",
+    "type": "Notifications"
   },
   {
     "heading": "pidgin-capsnot",
+    "homepage": "https://github.com/EionRobb/pidgin-capsnot/",
+    "info": "Keyboard LED Notification (caps-lock/num-lock/scroll-lock) for Pidgin/Finch",
     "isTrusted": true,
     "maintainer": "EionRobb",
-    "type": "Notifications",
-    "info": "Keyboard LED Notification (caps-lock/num-lock/scroll-lock) for Pidgin/Finch",
-    "homepage": "https://github.com/EionRobb/pidgin-capsnot/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-capsnot/",
+    "type": "Notifications"
   },
   {
     "heading": "Pidgin-dock",
+    "homepage": "https://code.google.com/archive/p/pidgin-cairo-dock/",
+    "info": "Emulate Mac OS X - dock behaviour with cairo-dock",
     "maintainer": "Sergey Klimov",
-    "type": "Notifications",
-    "info": "Emulate Mac OS X - dock behaviour with cairo-dock",
-    "homepage": "https://code.google.com/archive/p/pidgin-cairo-dock/"
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-cairo-dock/source-archive.zip",
+    "type": "Notifications"
   },
   {
     "heading": "Pidgin Advanced Sound Notification",
+    "homepage": "https://launchpad.net/pidgin-advanced-sound-notification/",
+    "info": "This plugin adds sounds for some notifications to pidgin (Incoming file transfer, Authentication requested, etc.)",
     "maintainer": "Konrad Gräfe",
-    "type": "Notifications",
-    "info": "This plugin adds sounds for some notifications to pidgin (Incoming file transfer, Authentication requested, etc.)",
-    "homepage": "https://launchpad.net/pidgin-advanced-sound-notification/"
+    "repo_type": "bzr",
+    "repo_url": "lp:pidgin-advanced-sound-notification",
+    "type": "Notifications"
   },
   {
     "heading": "PidginSnarl",
+    "homepage": "https://www.tlhan-ghun.de/Projects/PidginSnarl/",
+    "info": "Notifications using Snarl on Windows",
     "maintainer": "sven",
-    "type": "Notifications",
-    "info": "Notifications using Snarl on Windows",
-    "homepage": "https://www.tlhan-ghun.de/Projects/PidginSnarl/"
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/mozillasnarls/code/",
+    "type": "Notifications"
   },
   {
     "heading": "purple-libnotify+",
+    "homepage": "https://github.com/sardemff7/purple-libnotify-plus/#purple-libnotify",
+    "info": "Provides libnotify notifications",
     "maintainer": "sardemff7",
-    "type": "Notifications",
-    "info": "Provides libnotify notifications",
-    "homepage": "https://github.com/sardemff7/purple-libnotify-plus/#purple-libnotify"
+    "repo_type": "git",
+    "repo_url": "https://github.com/sardemff7/purple-libnotify-plus/",
+    "type": "Notifications"
   },
   {
+    "broken": true,
     "heading": "Smart Ear",
+    "homepage": "http://somewhere.fscked.org/proj/smartear/",
+    "info": "Customized per-buddy sound events",
     "maintainer": "Matt Perry",
-    "type": "Notifications",
-    "info": "Customized per-buddy sound events",
-    "homepage": "http://somewhere.fscked.org/proj/smartear/",
-    "broken": true
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Notifications"
   },
   {
     "heading": "Windows 8 Toast Notifications",
+    "homepage": "https://github.com/adriankeenan/pidgin-toast-8/",
+    "info": "Native win8 toast notifications",
     "maintainer": "Adrian Keenan",
-    "type": "Notifications",
-    "info": "Native win8 toast notifications",
-    "homepage": "https://github.com/adriankeenan/pidgin-toast-8/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/adriankeenan/pidgin-toast-8/",
+    "type": "Notifications"
   },
   {
     "heading": "Windows Toast Notifications",
+    "homepage": "https://github.com/ChristianGalla/PidginWinToastNotifications/",
+    "info": "Shows notifications when receiving messages, in the standard Windows design",
     "maintainer": "Christian Galla",
-    "type": "Notifications",
-    "info": "Shows notifications when receiving messages, in the standard Windows design",
-    "homepage": "https://github.com/ChristianGalla/PidginWinToastNotifications/"
+    "repo_type": "git",
+    "repo_url": "https://github.com/ChristianGalla/PidginWinToastNotifications/",
+    "type": "Notifications"
   },
   {
+    "broken": true,
     "heading": "Away-on-Lock",
-    "type": "Profile and Status Updates",
     "homepage": "https://costela.net/projects/awayonlock",
     "info": "Sets you as away when the screensaver gets activated. (Linux Gnome and KDE4)",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Full Screen Busy",
-    "type": "Profile and Status Updates",
     "homepage": "https://lostrealm.com/pidgin/fsb/",
-    "info": "Sets the status to busy (or any saved status) when a full screen application is detected. (Windows)"
-  }, {
+    "info": "Sets the status to busy (or any saved status) when a full screen application is detected. (Windows)",
+    "repo_type": "source-file",
+    "repo_url": "https://lostrealm.com/pidgin/fsb/1.4/fsb.c",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Google Shared Status",
-    "type": "Profile and Status Updates",
     "homepage": "http://www.siorarina.net/gtalk-shared-status/",
-    "info": "Adds Google Shared Status compatibility that permit to set the status for all the resources connected. This allows to go Invisible..."
-  }, {
+    "info": "Adds Google Shared Status compatibility that permit to set the status for all the resources connected. This allows to go Invisible...",
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/gss/src/autotools/gtalk-shared-status-0.2.5.tar.gz",
+    "type": "Profile and Status Updates"
+  },
+  {
+    "broken": true,
     "heading": "Google Talk Invisible",
-    "type": "Profile and Status Updates",
     "homepage": "http://fahhem.com/pidgin/#work",
-    "info": "Adds the ability to go invisible with Google Talk  (XMPP/Jabber protocol)"
-  }, {
+    "info": "Adds the ability to go invisible with Google Talk  (XMPP/Jabber protocol)",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Profile and Status Updates"
+  },
+  {
+    "broken": true,
     "heading": "IRC Away",
-    "type": "Profile and Status Updates",
     "homepage": "https://launchpad.net/pidgin-ircaway",
     "info": "Changes your IRC nick to indicate you are away.",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "IRC Status",
+    "homepage": "https://github.com/rickyepoderi/ircstatus",
+    "info": "Changes your IRC nick to indicate you are away",
     "maintainer": "rickyepoderi",
-    "type": "Profile and Status Updates",
-    "homepage": "https://github.com/rickyepoderi/ircstatus",
-    "info": "Changes your IRC nick to indicate you are away"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/rickyepoderi/ircstatus",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Jabber Pseudo Invisibility",
-    "type": "Profile and Status Updates",
     "homepage": "http://www.siorarina.net/jabber-pseudo-invisibility/",
-    "info": "Adds a pseudo invisible status for Jabber/XMPP accounts namely you result offline but you can monitor the status of your favourite buddies (and start conversations). Read carefully How to Use!!!"
-  }, {
+    "info": "Adds a pseudo invisible status for Jabber/XMPP accounts namely you result offline but you can monitor the status of your favourite buddies (and start conversations). Read carefully How to Use!!!",
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/jpi/src/jabber-pseudo-invisibility-0.4.2.src.tar.gz",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Last.FM Plugin",
-    "maintainer": "natureshadow",
-    "type": "Profile and Status Updates",
     "homepage": "https://sourceforge.net/projects/pidgin-lastfm/",
-    "info": "Shows information from your Last.FM / Audioscrobbler profile in your status message."
-  }, {
+    "info": "Shows information from your Last.FM / Audioscrobbler profile in your status message.",
+    "maintainer": "natureshadow",
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/pidgin-lastfm/code/",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Lock 'n' Roll",
-    "maintainer": "DanielLaberge",
-    "type": "Profile and Status Updates",
     "homepage": "https://github.com/DanielLaberge/lock-n-roll-extended",
-    "info": "Set any active accounts to Away (with a user-defined message if applicable) when the workstation locks, and back to Available when it is unlocked. If an account has an existing away message set, Lock ‘n’ Roll leaves it alone. (Windows)"
-  }, {
+    "info": "Set any active accounts to Away (with a user-defined message if applicable) when the workstation locks, and back to Available when it is unlocked. If an account has an existing away message set, Lock ‘n’ Roll leaves it alone. (Windows)",
+    "maintainer": "DanielLaberge",
+    "repo_type": "git",
+    "repo_url": "https://github.com/DanielLaberge/lock-n-roll-extended",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Pidgin-Countdown",
+    "homepage": "https://launchpad.net/pidgin-countdown",
+    "info": "Sets your status counting down to a specific date & time.",
     "maintainer": "Stephen English",
-    "type": "Profile and Status Updates",
-    "homepage": "https://launchpad.net/pidgin-countdown",
-    "info": "Sets your status counting down to a specific date & time."
-  }, {
+    "repo_type": "bzr",
+    "repo_url": "lp:pidgin-countdown",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Pidgin-Identica-Status",
-    "type": "Profile and Status Updates",
-    "homepage": "https://code.google.com/p/pidgin-identica-status/",
-    "info": "Use a feed from identi.ca as your Pidgin status."
-  }, {
+    "homepage": "https://code.google.com/archive/p/pidgin-identica-status/",
+    "info": "Use a feed from identi.ca as your Pidgin status.",
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-identica-status/source-archive.zip",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Pidgin-Twitter-Status",
+    "homepage": "https://github.com/guysoft/Twitter-Status",
+    "info": "Use a feed from Twitter as your Pidgin status. No OAuth required. Works via RSS.",
     "maintainer": "guysoft",
-    "type": "Profile and Status Updates",
-    "homepage": "https://github.com/guysoft/Twitter-Status",
-    "info": "Use a feed from Twitter as your Pidgin status. No OAuth required. Works via RSS."
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/guysoft/Twitter-Status",
+    "type": "Profile and Status Updates"
+  },
+  {
+    "broken": true,
     "heading": "Purple-Presence",
-    "maintainer": "sardemff7",
-    "type": "Profile and Status Updates",
     "homepage": "https://sardemff7.github.io/Purple-Presence/",
     "info": "Provides GnomeSession Presence status support to Purple",
-    "broken": true
-  }, {
+    "maintainer": "sardemff7",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Purple Twitter Syncup",
+    "homepage": "https://bitbucket.org/yogeshpathade/purple-twitter-syncup/wiki/Home/",
+    "info": "Set User Tweet as Pidgin Status. Standalone application using reliable OAuth Authentication and DBus.",
     "maintainer": "yogeshpathade",
-    "type": "Profile and Status Updates",
-    "homepage": "https://bitbucket.org/yogeshpathade/purple-twitter-syncup/wiki/Home/",
-    "info": "Set User Tweet as Pidgin Status. Standalone application using reliable OAuth Authentication and DBus."
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://bitbucket.org/yogeshpathade/purple-twitter-syncup.git",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Roster",
+    "homepage": "https://github.com/dzzinstant/pidgin-rosterx-plugin",
+    "info": "contact suggestions for Jabber, as described in XEP-0144",
     "maintainer": "dzzinstant",
-    "type": "Profile and Status Updates",
-    "homepage": "https://github.com/dzzinstant/pidgin-rosterx-plugin",
-    "info": "contact suggestions for Jabber, as described in XEP-0144"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/dzzinstant/pidgin-rosterx-plugin",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Scroll Lock Indicator",
+    "homepage": "https://github.com/dotdias/pidgin-scrolllockindicator",
+    "info": "Flashes scroll/caps/num lock light on new message",
     "maintainer": "dotdias",
-    "type": "Profile and Status Updates",
-    "homepage": "https://github.com/dotdias/pidgin-scrolllockindicator",
-    "info": "Flashes scroll/caps/num lock light on new message"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/dotdias/pidgin-scrolllockindicator",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Silence",
+    "homepage": "https://github.com/megacoder/silence/",
+    "info": "Mutes everything",
     "maintainer": "megacoder",
     "type": "Profile and Status Updates",
-    "homepage": "https://github.com/megacoder/silence/",
-    "info": "Mutes everything"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/megacoder/silence/"
+  },
+  {
     "heading": "Sluggish",
+    "homepage": "https://github.com/jamesboston/pidgin",
+    "info": "Sluggish will delay changing your status to Available until you have been back at your keyboard for several minutes.",
     "maintainer": "jamesboston",
     "type": "Profile and Status Updates",
-    "homepage": "https://github.com/jamesboston/pidgin",
-    "info": "Sluggish will delay changing your status to Available until you have been back at your keyboard for several minutes."
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/jamesboston/pidgin"
+  },
+  {
     "heading": "Status Hot Keys",
+    "homepage": "https://www.castledragmire.com/Projects/Status_Hot_Keys",
+    "info": "Global shortcut keys to set status and manipulate the buddy window visibility",
     "maintainer": "castledragmire",
-    "type": "Profile and Status Updates",
-    "homepage": "https://www.castledragmire.com/Projects/Status_Hot_Keys",
-    "info": "Global shortcut keys to set status and manipulate the buddy window visibility"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://www.castledragmire.com/ProjectContent/StatusHotKeys/StatusHotKeys_v1.5.2_Source.zip",
+    "type": "Profile and Status Updates"
+  },
+  {
+    "broken": true,
     "heading": "Status RSS",
-    "type": "Profile and Status Updates",
     "homepage": "https://www.len.ro/work/status-rss-plugin-for-pidgin/",
     "info": "Update status from RSS feed",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Status to Twitter",
-    "type": "Profile and Status Updates",
-    "homepage": "https://code.google.com/p/pidgin-status-to-twitter/",
-    "info": "Update Twitter with your Pidgin Status"
-  }, {
+    "homepage": "https://code.google.com/archive/p/pidgin-status-to-twitter/",
+    "info": "Update Twitter with your Pidgin Status",
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-status-to-twitter/source-archive.zip",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "Twitter in your Profile",
-    "type": "Profile and Status Updates",
-    "homepage": "https://code.google.com/p/pidgin-twitter-profile/",
-    "info": "Insert your Twitter history into your profile. It gets updated periodically."
-  }, {
+    "homepage": "https://code.google.com/archive/p/pidgin-twitter-profile/",
+    "info": "Insert your Twitter history into your profile. It gets updated periodically.",
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-twitter-profile/source-archive.zip",
+    "type": "Profile and Status Updates"
+  },
+  {
     "heading": "xssidle",
+    "homepage": "https://github.com/mehturt/pidgin",
+    "info": "Set idle time based on information from X11 Screen Saver (such as xscreensaver).",
     "maintainer": "mehturt",
     "type": "Profile and Status Updates",
-    "homepage": "https://github.com/mehturt/pidgin",
-    "info": "Set idle time based on information from X11 Screen Saver (such as xscreensaver)."
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/mehturt/pidgin"
+  },
+  {
+    "broken": true,
     "heading": "MusicInfo",
-    "type": "Now Playing",
     "homepage": "http://www.pidginmusic.info/",
     "info": "Displays the currently-playing music in your status message and profile. Winamp API compatible.",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Now Playing"
+  },
+  {
     "heading": "Music Tracker",
-    "type": "Now Playing",
-    "homepage": "https://code.google.com/p/pidgin-musictracker/",
-    "info": "Displays the music track currently playing in the status message. Supports a wide range of audio players."
-  }, {
+    "homepage": "https://code.google.com/archive/p/pidgin-musictracker/",
+    "info": "Displays the music track currently playing in the status message. Supports a wide range of audio players.",
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/pidgin-musictracker/source-archive.zip",
+    "type": "Now Playing"
+  },
+  {
     "heading": "Pidgin-Audacious-Remote",
-    "type": "Now Playing",
     "homepage": "https://pidginaudacious.sourceforge.io/",
-    "info": "Updates the status message using custom information retrieved from Audacious Media Player. This plugin also allows control over Audacious Media Player from the Pidgin conversation windows (play, pause, next...)."
-  }, {
+    "info": "Updates the status message using custom information retrieved from Audacious Media Player. This plugin also allows control over Audacious Media Player from the Pidgin conversation windows (play, pause, next...).",
+    "repo_type": "bzr",
+    "repo_url": "pidginaudacious.bzr.sourceforge.net/bzrroot/pidginaudacious",
+    "type": "Now Playing"
+  },
+  {
     "heading": "Pidgin current track",
-    "type": "Now Playing",
     "homepage": "https://sourceforge.net/projects/currenttrack/",
-    "info": "Current Track plugin will update your Pidgin user info, available message or away message, and buddy icon from iTunes, Winamp, RealPlayer, WMP, Musicmatch, MediaMonkey, XMPlay, Yahoo! & Foobar2000 in Windows and XMMS, Rhythmbox, & Amarok in Linux."
-  }, {
+    "info": "Current Track plugin will update your Pidgin user info, available message or away message, and buddy icon from iTunes, Winamp, RealPlayer, WMP, Musicmatch, MediaMonkey, XMPlay, Yahoo! & Foobar2000 in Windows and XMMS, Rhythmbox, & Amarok in Linux.",
+    "repo_type": "svn",
+    "repo_url": "https://svn.code.sf.net/p/currenttrack/code/trunk",
+    "type": "Now Playing"
+  },
+  {
     "heading": "pilt spotify",
-    "type": "Now Playing",
     "homepage": "https://github.com/pilt/spotify",
-    "info": "'now listening' plugin for spotify"
-  }, {
+    "info": "'now listening' plugin for spotify",
+    "repo_type": "git",
+    "repo_url": "https://github.com/pilt/spotify",
+    "type": "Now Playing"
+  },
+  {
     "heading": "YuLastFM",
-    "type": "Now Playing",
     "homepage": "https://sourceforge.net/projects/yulastfm/",
-    "info": "Yu Last.fm Pidgin tune status plugin."
-  }, {
+    "info": "Yu Last.fm Pidgin tune status plugin.",
+    "repo_type": "git",
+    "repo_url": "https://git.code.sf.net/p/yulastfm/git",
+    "type": "Now Playing"
+  },
+  {
     "heading": "Adium to Pidgin themes converter",
-    "type": "Interface Tweaks",
-    "homepage": "https://code.google.com/p/adium2pidgin-themes/",
-    "info": "Allows to convert themes from www.adiumxtras.com"
-  }, {
+    "homepage": "https://code.google.com/archive/p/adium2pidgin-themes/",
+    "info": "Allows to convert themes from www.adiumxtras.com",
+    "repo_type": "source",
+    "repo_url": "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/adium2pidgin-themes/source-archive.zip",
+    "type": "Interface Tweaks"
+  },
+  {
     "heading": "Attention Button",
-    "type": "Interface Tweaks",
     "homepage": "https://issues.imfreedom.org/issue/PIDGIN-12202",
-    "info": "Hide the attention button"
-  }, {
+    "info": "Hide the attention button",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "broken": true,
     "heading": "Autohide",
-    "type": "Interface Tweaks",
     "homepage": "http://pidgin.dotninesoft.de/",
     "info": "Buddy list improvements like autohide, always on top and hide min/max buttons",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
     "heading": "Autojoin Chat",
+    "homepage": "https://github.com/EionRobb/purple-autojoin-chat",
+    "info": "Skips the 'x invited you to join a chat' message",
     "maintainer": "EionRobb",
     "type": "Interface Tweaks",
-    "homepage": "https://github.com/EionRobb/purple-autojoin-chat",
-    "info": "Skips the 'x invited you to join a chat' message"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-autojoin-chat"
+  },
+  {
     "heading": "autoresize",
+    "homepage": "https://web.archive.org/web/20110917120609/http://raoulito.info:80/plugins/pidgin_autoresize/",
+    "info": "Automatically update the buddy list to fit its contents (vertically).",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Character Counter",
+    "homepage": "https://launchpad.net/pidgin-character-counting",
+    "info": "Plugin for displaying the character count of the current message.",
+    "maintainer": "Konrad Gräfe",
+    "repo_type": "bzr",
+    "repo_url": "lp:pidgin-character-counting",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Expand",
+    "homepage": "https://github.com/mikeage/expand",
+    "info": "Automatically expand shortened URLs. No more rick-rolling!",
     "type": "Interface Tweaks",
-    "homepage": "https://web.archive.org/web/20110917120609/http://raoulito.info:80/plugins/pidgin_autoresize/",
-    "info": "Automatically update the buddy list to fit its contents (vertically)."
-  }, {
-    "heading": "Character Counter",
+    "repo_type": "git",
+    "repo_url": "https://github.com/mikeage/expand"
+  },
+  {
+    "heading": "Extended Buddy List Sort",
+    "homepage": "https://github.com/kgraefe/pidgin-extended-blist-sort",
+    "info": "Adds more buddy list sorting options",
     "maintainer": "Konrad Gräfe",
     "type": "Interface Tweaks",
-    "homepage": "https://launchpad.net/pidgin-character-counting",
-    "info": "Plugin for displaying the character count of the current message."
-  }, {
-    "heading": "Expand",
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-extended-blist-sort"
+  },
+  {
+    "heading": "Guiops",
+    "homepage": "https://code.google.com/archive/p/pidgin-guiops/",
+    "info": "GUIOps plugin provides more GUI customization options",
     "type": "Interface Tweaks",
-    "homepage": "https://github.com/mikeage/expand",
-    "info": "Automatically expand shortened URLs. No more rick-rolling!"
-  }, {
-    "heading": "Extended Buddy List Sort",
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-guiops/"
+  },
+  {
+    "heading": "Hide Chat",
+    "homepage": "https://github.com/kgraefe/pidgin-hide-chat-on-join",
+    "info": "Hides the window/tab for a channel when the account is connected. (useful for auto-join channels)",
     "maintainer": "Konrad Gräfe",
     "type": "Interface Tweaks",
-    "homepage": "https://github.com/kgraefe/pidgin-extended-blist-sort",
-    "info": "Adds more buddy list sorting options"
-  }, {
-    "heading": "Guiops",
-    "type": "Interface Tweaks",
-    "homepage": "https://code.google.com/p/pidgin-guiops/",
-    "info": "GUIOps plugin provides more GUI customization options"
-  }, {
-    "heading": "Hide Chat",
-    "maintainer": "Konrad Gräfe",
-    "type": "Interface Tweaks",
-    "homepage": "https://github.com/kgraefe/pidgin-hide-chat-on-join",
-    "info": "Hides the window/tab for a channel when the account is connected. (useful for auto-join channels)"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-hide-chat-on-join"
+  },
+  {
+    "heading": "Ignore Nick Change",
     "homepage": "https://github.com/EionRobb/pidgin-ignore-nickchange",
     "info": "Hides the \"X is now known as Y\" messages in chats",
     "type": "Interface Tweaks",
-    "heading": "Ignore Nick Change"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-ignore-nickchange"
+  },
+  {
+    "heading": "IRC Format",
     "homepage": "https://github.com/BlueWinds/pidgin-irc-format",
     "info": "A Pidgin/libpurple plugin that lets you send and receive bold/underline/italic/colored text in IRC chats/IMs.",
     "type": "Interface Tweaks",
-    "heading": "IRC Format"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/BlueWinds/pidgin-irc-format"
+  },
+  {
+    "broken": true,
+    "heading": "keys per minute",
     "homepage": "http://3d.benjamin-thaut.de/?p=12",
     "info": "Counts the keys per minute while you are typing a message and displays it.",
-    "type": "Interface Tweaks",
-    "heading": "keys per minute",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Leftify tabs",
     "homepage": "https://github.com/nablaa/pidgin-leftify-tabs-plugin",
     "info": "Moves a conversation tab to the leftmost position in the tab bar whenever a message arrives.",
     "type": "Interface Tweaks",
-    "heading": "Leftify tabs"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/nablaa/pidgin-leftify-tabs-plugin"
+  },
+  {
+    "heading": "MacOS Integration",
     "homepage": "https://github.com/Agalin/pidgin_macos_integration",
     "info": "Adds native menu and notifications for OSX.",
     "type": "Interface Tweaks",
-    "heading": "MacOS Integration"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/Agalin/pidgin_macos_integration"
+  },
+  {
+    "heading": "MacOS Pidgin Bundle",
     "homepage": "https://github.com/Agalin/pidgin_bundle",
     "info": "Adds dock icons for Pidgin on OSX",
     "type": "Interface Tweaks",
-    "heading": "MacOS Pidgin Bundle"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/Agalin/pidgin_bundle"
+  },
+  {
+    "heading": "Manual Resize",
     "homepage": "https://issues.imfreedom.org/issue/PIDGIN-5296",
     "info": "Allows manually resizing the conversation window entry area.",
-    "type": "Interface Tweaks",
-    "heading": "Manual Resize"
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Media Emblems",
     "homepage": "https://github.com/EionRobb/pidgin-media-emblems",
     "info": "Adds emblems to the buddy list to show if a user supports Voice or Video calls.",
     "type": "Interface Tweaks",
-    "heading": "Media Emblems"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-cmds/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-media-emblems"
+  },
+  {
+    "heading": "pidgin-cmds",
+    "homepage": "https://code.google.com/archive/p/pidgin-cmds/",
     "info": "Various conversation commands",
     "type": "Interface Tweaks",
-    "heading": "pidgin-cmds"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-cmds/"
+  },
+  {
+    "heading": "Pidgin Conversation Locker",
     "homepage": "https://github.com/enli/pidgin-conversation-locker/",
     "info": "Prevent closing of important conversations(/tabs) by selectively locking them.",
     "type": "Interface Tweaks",
-    "heading": "Pidgin Conversation Locker"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": "git",
+    "repo_url": "https://github.com/enli/pidgin-conversation-locker/"
+  },
+  {
+    "heading": "Pidgin Conversation Save Order",
     "homepage": "https://github.com/kgraefe/pidgin-save-conv-order",
     "info": "Save the order of chats and IMs and restore it the next time you open a conversation.",
+    "maintainer": "Konrad Gräfe",
     "type": "Interface Tweaks",
-    "heading": "Pidgin Conversation Save Order"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-save-conv-order"
+  },
+  {
+    "heading": "Pidgin Group Chat Typing Notifications",
     "homepage": "https://github.com/EionRobb/pidgin-groupchat-typing-notifications",
     "info": "Display typing notifications of users in a compatible multi-user chat",
     "type": "Interface Tweaks",
-    "heading": "Pidgin Group Chat Typing Notifications"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-nudge/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-groupchat-typing-notifications"
+  },
+  {
+    "heading": "pidgin-nudge",
+    "homepage": "https://code.google.com/archive/p/pidgin-nudge/",
     "info": "Shakes your conversation window when you receive a nudge/buzz/zap",
     "type": "Interface Tweaks",
-    "heading": "pidgin-nudge"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/archive/p/pidgin-nudge/"
+  },
+  {
+    "heading": "Pidgin PBar",
     "homepage": "https://www.hauweele.net/~gawen/pidgin-pbar.html",
     "info": "A toolbar to update some account settings globally.",
-    "type": "Interface Tweaks",
-    "heading": "Pidgin PBar"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-personalbar/",
+    "repo_type": "source",
+    "repo_url": "https://www.hauweele.net/~gawen/files/pbar-0.3.tar.bz2",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Pidgin Personal Bar",
+    "homepage": "https://code.google.com/archive/p/pidgin-personalbar/",
     "info": "Adds a section at the top of your buddy list to change your display name and personal message.",
     "type": "Interface Tweaks",
-    "heading": "Pidgin Personal Bar"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/archive/p/pidgin-personalbar/"
+  },
+  {
+    "heading": "Pidgin Windows Position Manager",
     "homepage": "https://extpos.mdsc.info/",
     "info": "Places new conversation windows intelligently in Windows (i.e. doesn't always put them in the top left corner).",
-    "type": "Interface Tweaks",
-    "heading": "Pidgin Windows Position Manager"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://extpos.mdsc.info/downloads/extpos.src.tar.gz",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Purple Import Empathy",
     "homepage": "https://github.com/FelixZhang/purple-import-empathy",
     "info": "A pidgin plugin that imports empathy accounts and logs",
     "type": "Interface Tweaks",
-    "heading": "Purple Import Empathy"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/FelixZhang/purple-import-empathy"
+  },
+  {
+    "heading": "Protocol Icon Override",
     "homepage": "https://github.com/EionRobb/pidgin-icon-override",
     "info": "Lets you pick the protocol icon to display per-account",
     "type": "Interface Tweaks",
-    "heading": "Protocol Icon Override"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-icon-override"
+  },
+  {
+    "heading": "Protocol Status Icons",
     "homepage": "https://github.com/kgraefe/pidgin-protocol-status-icons",
     "info": "Adds the protocol icon to the status icons in the buddy list.",
+    "maintainer": "Konrad Gräfe",
     "type": "Interface Tweaks",
-    "heading": "Protocol Status Icons"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-quickadd/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-protocol-status-icons"
+  },
+  {
+    "heading": "Quickadd",
+    "homepage": "https://code.google.com/archive/p/pidgin-quickadd/",
     "info": "This a simple plugin for pidgin. The idea is to alter the context menu of email addresses in conversations and add option to add the address as a buddy",
     "type": "Interface Tweaks",
-    "heading": "Quickadd"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-quickadd/"
+  },
+  {
+    "heading": "Quickpurple",
     "homepage": "https://github.com/shashurup/quickpurple",
     "info": "Provides quick buddy lookup, status switch, unread messages list and access to some Pidgin dialogs.",
     "type": "Interface Tweaks",
-    "heading": "Quickpurple"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/shashurup/quickpurple"
+  },
+  {
+    "heading": "Quote selected text",
     "homepage": "https://launchpad.net/quote/",
     "info": "Quick specify message to answer",
-    "type": "Interface Tweaks",
-    "heading": "Quote selected text"
-  }, {
+    "repo_type": "bzr",
+    "repo_url": "lp:quote",
+    "type": "Interface Tweaks"
+  },
+  {
+    "broken": true,
+    "heading": "Scroll to bottom",
     "homepage": "http://pidgin.dotninesoft.de/",
     "info": "Scrolls chat history of created conversation windows automatically to the bottom.",
-    "type": "Interface Tweaks",
-    "heading": "Scroll to bottom",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "broken": true,
+    "heading": "Session Save",
     "homepage": "http://somewhere.fscked.org/proj/sessionsave/",
     "info": "Session Save will remember what conversation windows you had open the last time you used Pidgin, and re-open them for you when you sign on.",
-    "type": "Interface Tweaks",
-    "heading": "Session Save",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Smiley Shortcuts",
     "homepage": "https://sourceforge.net/projects/gaimsmileykeys/",
     "info": "Inserts a smiley on ctrl+(number) combination.",
-    "type": "Interface Tweaks",
-    "heading": "Smiley Shortcuts"
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "TooBars",
     "homepage": "http://vayurik.ru/en/toobars",
     "info": "Add toolbar, status bar, context menu to Pidgin buddy list, hide main menu, change all status by menu (not through Statusbox!) and much more",
-    "type": "Interface Tweaks",
-    "heading": "TooBars"
-  }, {
+    "repo_type": "source",
+    "repo_url": "http://vayurik.ru/wordpress/wp-content/uploads/toobars/1.14/pidgin-toobars-1.14.tar.gz",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "TooButtons",
     "homepage": "http://vayurik.ru/en/toobuttons",
     "info": "Add Send and Close buttons to Pidgin conversations",
-    "type": "Interface Tweaks",
-    "heading": "TooButtons"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": "source",
+    "repo_url": "http://vayurik.ru/wordpress/wp-content/uploads/toobuttons/1.5/pidgin-toobuttons-1.5.tar.gz",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Toolbar Shrink",
     "homepage": "https://launchpad.net/pidgin-toolbar-shrink",
     "info": "Shrinks the toolbar of the conversation windows by hiding the text of the buttons.",
-    "type": "Interface Tweaks",
-    "heading": "Toolbar Shrink"
-  }, {
+    "maintainer": "Konrad Gräfe",
+    "repo_type": "source",
+    "repo_url": "https://launchpad.net/pidgin-toolbar-shrink/trunk/1.1.1/+download/pidgin-toolbar-shrink-1.1.1.tar.gz",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Translit tools",
     "homepage": "https://github.com/ashinkarov/translit-plugin",
     "info": "A virtual russian keyboard that decodes message written in ISO-9 translit in russian.",
     "type": "Interface Tweaks",
-    "heading": "Translit tools"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": "git",
+    "repo_url": "https://github.com/ashinkarov/translit-plugin"
+  },
+  {
+    "heading": "Unhighlight System Messages",
     "homepage": "https://github.com/kgraefe/pidgin-unhighlight-system-messages",
     "info": "Remove the highlight flag from system messages.",
+    "maintainer": "Konrad Gräfe",
     "type": "Interface Tweaks",
-    "heading": "Unhighlight System Messages"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-unhighlight-system-messages"
+  },
+  {
+    "heading": "usercast",
     "homepage": "https://github.com/derlaft/usercast",
     "info": "Copies the nickname you've double clicked in the conference chat and pastes it into a conversation's entry field",
     "type": "Interface Tweaks",
-    "heading": "usercast"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/derlaft/usercast"
+  },
+  {
+    "heading": "Window Merge",
     "homepage": "https://github.com/dm0-/window_merge",
     "info": "Merges the Buddy List window with a conversation window",
     "type": "Interface Tweaks",
-    "heading": "Window Merge"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/dm0-/window_merge"
+  },
+  {
+    "heading": "WrapMenu",
     "homepage": "http://vayurik.ru/en/wrapmenu",
     "info": "Wrap main menu if it is too wide",
-    "type": "Interface Tweaks",
-    "heading": "WrapMenu"
-  }, {
+    "repo_type": "source",
+    "repo_url": "http://vayurik.ru/wordpress/wp-content/uploads/wrapmenu/1.1/pidgin-wrapmenu-1.1.tar.gz",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Windows 7 Taskbar",
     "homepage": "https://github.com/EionRobb/pidgin-win7#readme",
     "info": "Adds new Windows 7 eye-candy such as task bar menu, progress and emblems",
     "type": "Interface Tweaks",
-    "heading": "Windows 7 Taskbar"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-win7"
+  },
+  {
+    "heading": "Windows Smooth Scrolling",
     "homepage": "https://github.com/EionRobb/pidgin-windows-smooth-scrolling/releases",
     "info": "Gives more precise scrolling control eg with trackpads",
     "type": "Interface Tweaks",
-    "heading": "Windows Smooth Scrolling"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-windows-smooth-scrolling/"
+  },
+  {
+    "heading": "Xfer Auto Path",
     "homepage": "https://launchpad.net/pidgin-xfer-auto-path",
     "info": "Allows you to automatically set the folder for saving your incoming file transfers by some criteria such as buddy alias.",
-    "type": "Interface Tweaks",
-    "heading": "Xfer Auto Path"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-autoauthorization-plugin/",
+    "maintainer": "Konrad Gräfe",
+    "repo_type": "bzr",
+    "repo_url": "lp:pidgin-xfer-auto-path",
+    "type": "Interface Tweaks"
+  },
+  {
+    "heading": "Auto Authorization",
+    "homepage": "https://code.google.com/archive/p/pidgin-autoauthorization-plugin/",
     "info": "Automatic handling of request of remote user who wants to appear in your buddy list",
     "type": "Accounts and Logs",
-    "heading": "Auto Authorization"
-  }, {
-    "homepage": "https://code.google.com/p/forward2mobile/",
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-autoauthorization-plugin/"
+  },
+  {
+    "heading": "forward2mobile",
+    "homepage": "https://code.google.com/archive/p/forward2mobile/",
     "info": "Forwards and sends your IM messages to/from your existing account that you already use on your mobile with your favorite mobile IM client",
     "type": "Accounts and Logs",
-    "heading": "forward2mobile"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/archive/p/forward2mobile/"
+  },
+  {
+    "broken": true,
+    "heading": "History control",
     "homepage": "http://low-networx.de/kb/index.php/article/pidgin-history-control",
     "info": "Buddy- and Historysync as Perl Pidgin Plugin",
-    "type": "Accounts and Logs",
-    "heading": "History control",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Accounts and Logs"
+  },
+  {
+    "broken": true,
+    "heading": "IM-History Plugin",
     "homepage": "http://www.im-history.com/",
     "info": "Provides easy and convenient way to store your chats and contact list online (using im-history.com service).",
-    "type": "Accounts and Logs",
-    "heading": "IM-History Plugin",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Accounts and Logs"
+  },
+  {
+    "broken": true,
+    "heading": "Logstatus",
     "homepage": "http://bla.thera.be/archives/20",
     "info": "Logs all the status changes to the buddy history.",
-    "type": "Accounts and Logs",
-    "heading": "Logstatus",
-    "broken": true
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-logviewer/",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Accounts and Logs"
+  },
+  {
+    "heading": "Logviewer",
+    "homepage": "https://code.google.com/archive/p/pidgin-logviewer/",
     "info": "Logsearch for all chat logs",
     "type": "Accounts and Logs",
-    "heading": "Logviewer"
-  }, {
-    "homepage": "http://www.orenet.co.uk/opensource/pidgin-oo/",
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-logviewer/"
+  },
+  {
+    "heading": "Office Hours",
+    "homepage": "https://www.orenet.co.uk/opensource/pidgin-oo/",
     "info": "A plugin that logs you out if you go idle outside your 'office hours' so you can log in the same account(s) at home. In perl so may not work on MS Windows",
-    "type": "Accounts and Logs",
-    "heading": "Office Hours"
-  }, {
+    "repo_type": "source-file",
+    "repo_url": "https://www.orenet.co.uk/opensource/pidgin-oo/pidgin-office-hours.pl",
+    "type": "Accounts and Logs"
+  },
+  {
+    "heading": "pidgin-autoanswer",
     "homepage": "https://sourceforge.net/projects/pidgin-autoansw",
     "info": "A personal adviser, that tries to find suitable answers in your previous logs",
-    "type": "Accounts and Logs",
-    "heading": "pidgin-autoanswer"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://sourceforge.net/projects/pidgin-autoansw/files/pidgin-autoansw/pidgin-autoanswer%200.71/pidgin-autoanswer-0.71.tar.gz/download",
+    "type": "Accounts and Logs"
+  },
+  {
+    "heading": "pidgin-juice",
     "homepage": "https://github.com/EionRobb/pidgin-juice",
     "info": "Web-based iPhone interface for Pidgin/Finch",
     "type": "Accounts and Logs",
-    "heading": "pidgin-juice"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-juice"
+  },
+  {
+    "heading": "Pidgin Backup",
     "homepage": "https://issues.imfreedom.org/issue/PIDGIN-3581",
     "info": "Simply back up your preferences (prefs.xml)",
-    "type": "Accounts and Logs",
-    "heading": "Pidgin Backup"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Accounts and Logs"
+  },
+  {
+    "heading": "Purple History Since",
     "homepage": "https://github.com/kgraefe/purple-history-since",
     "info": "Avoid duplicated chat history on some XMPP servers",
+    "maintainer": "Konrad Gräfe",
     "type": "Accounts and Logs",
-    "heading": "Purple History Since"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/purple-history-since"
+  },
+  {
+    "heading": "SQLite Logger",
     "homepage": "https://github.com/EionRobb/pidgin-sqlite-log/tree/master",
     "info": "IM/Chat logger with a SQLite backend",
     "type": "Accounts and Logs",
-    "heading": "SQLite Logger"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-sqlite-log/"
+  },
+  {
+    "broken": true,
+    "heading": "Web Pidgin",
     "homepage": "https://www.thirdmartini.com/index.php/WebPidgin.html",
     "info": "Access buddy list and conversations via mobile web browsers",
-    "type": "Accounts and Logs",
-    "heading": "Web Pidgin",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Accounts and Logs"
+  },
+  {
+    "broken": true,
+    "heading": "Web Pidgin Z",
     "homepage": "http://www.shaorang.com/webpidginz/",
     "info": "Fork from the original Web Pidgin. A lot of new features and bugfixes like Ajax support, digest authentication, webserver logs and gtalk-like grouping of messages and much more",
-    "type": "Accounts and Logs",
-    "heading": "Web Pidgin Z",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Accounts and Logs"
+  },
+  {
+    "heading": "Auto Translate",
     "homepage": "https://github.com/EionRobb/purple-translate",
     "info": "Auto translates incoming IMs",
     "type": "Miscellaneous",
-    "heading": "Auto Translate"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/purple-translate"
+  },
+  {
+    "broken": true,
+    "heading": "b64",
     "homepage": "https://sites.google.com/site/chetanv/technicalstuff",
     "info": "Base 64 encoding of chat messages (A very simple Perl plugin)",
-    "type": "Miscellaneous",
-    "heading": "b64",
-    "broken": true
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Birthday Reminder",
     "homepage": "https://github.com/kgraefe/pidgin-birthday-reminder",
     "info": "Reminds you of your buddies birthdays.",
+    "maintainer": "Konrad Gräfe",
     "type": "Miscellaneous",
-    "heading": "Birthday Reminder"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-birthday-reminder"
+  },
+  {
+    "heading": "Block <user> has left the conversation.",
     "homepage": "https://github.com/oakmac/Pidgin-Plugin-block-user-has-left-the-conversation/",
     "info": "Very simple plugin that blocks the message \"<user> has left the conversation.\"",
     "type": "Miscellaneous",
-    "heading": "Block <user> has left the conversation."
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/oakmac/Pidgin-Plugin-block-user-has-left-the-conversation/"
+  },
+  {
+    "heading": "Block AOL System Msg",
     "homepage": "https://github.com/oakmac/Pidgin-Plugin--Block-AOL-System-Msg/",
     "info": "Very simple plugin that blocks messages from \"AOL System Msg\" when you are logged into AIM from multiple locations.",
     "type": "Miscellaneous",
-    "heading": "Block AOL System Msg"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/oakmac/Pidgin-Plugin--Block-AOL-System-Msg/"
+  },
+  {
+    "heading": "bridgin",
     "homepage": "https://github.com/bill-auger/bridgin",
     "info": "Relay messages between chat rooms via a plugin",
     "type": "Miscellaneous",
-    "heading": "bridgin"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/bill-auger/bridgin"
+  },
+  {
+    "heading": "bridgin-php",
     "homepage": "https://github.com/bill-auger/bridgin-php",
     "info": "Relay messages between chat rooms via a dbus plugin",
+    "notes": "Deprecated for bridgin",
     "type": "Miscellaneous",
-    "heading": "bridgin-php",
-    "notes": "Deprecated for bridgin"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/bill-auger/bridgin-php"
+  },
+  {
+    "heading": "core-answerscripts",
     "homepage": "https://github.com/Harvie/libpurple-core-answerscripts",
     "info": "Framework for hooking simple but powerful \"answerscripts\" to received messages.",
     "type": "Miscellaneous",
-    "heading": "core-answerscripts"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/Harvie/libpurple-core-answerscripts"
+  },
+  {
+    "heading": "DockApp",
     "homepage": "https://emvi.eu.org/pidgin_dockapp/index_en.html",
     "info": "Allows Pidgin to appear as an AfterStep Wharf icon.",
-    "type": "Miscellaneous",
-    "heading": "DockApp"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://emvi.eu.org/pidgin_dockapp/pidgin_dockapp.tar.bz2",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Extended Preferences",
     "homepage": "http://gaim-extprefs.sf.net/",
     "info": "Provides some often-requested preferences",
-    "type": "Miscellaneous",
-    "heading": "Extended Preferences"
-  }, {
+    "repo_type": "cvs",
+    "repo_url": "cvs -z3 -d:pserver:anonymous@a.cvs.sourceforge.net:/cvsroot/gaim-extprefs co -P extendedprefs",
+    "type": "Miscellaneous"
+  },
+  {
+    "broken": true,
+    "heading": "Facebook Notifier",
     "homepage": "http://wiki.dbkmedia.com/Facebook_Notifier",
     "info": "Indicates when there are unread Facebook notifications.",
-    "type": "Miscellaneous",
-    "heading": "Facebook Notifier",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "broken": true,
+    "heading": "Fonomo Video",
     "homepage": "http://www.fonomo.com/software/pidgin.html",
     "info": "Enables Video-chat invitations via Fonomo.com (requires Adobe Flash v9 or higher)",
-    "type": "Miscellaneous",
-    "heading": "Fonomo Video",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Google Invisibility Half Scan",
     "homepage": "http://www.siorarina.net/google-invisibility-half-scan/",
     "info": "WARNING! GOOGLE HAS FIXED THE BUG! THIS PLUGIN IS NO LONGER WORKING! Find out if your (Gtalk) buddies are INVISIBLE. Note: This is an \"HALF SCAN\" because you can not establish with certainty that a buddy is invisible (read Description).",
-    "type": "Miscellaneous",
-    "heading": "Google Invisibility Half Scan"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/gihs/src/google-invisibility-half-scan-0.2.1.src.tar.gz",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Google Invisibility Tracker",
     "homepage": "http://www.siorarina.net/google-invisibility-tracker/",
     "info": "This plugin alerts you when a buddy of yours (using Gmail, GTalk Lab Edition or iGoogle) go invisible",
-    "type": "Miscellaneous",
-    "heading": "Google Invisibility Tracker"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/git/src/google-invisibility-tracker-0.2.2.src.tar.gz",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Growl",
     "homepage": "https://github.com/danielb2/pidgin-plugins",
     "info": "Perl plugin to use Growl. Requires growlnotify. Particularly useful for finch where an IM in a different window may go unnoticed.",
     "type": "Miscellaneous",
-    "heading": "Growl"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/danielb2/pidgin-plugins"
+  },
+  {
+    "heading": "Headset",
     "homepage": "https://git.infradead.org/users/dwmw2/pidgin-headset.git",
     "info": "Supports mute and hangup buttons from USB headsets",
-    "type": "Miscellaneous",
-    "heading": "Headset"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-plugins",
+    "repo_type": "git",
+    "repo_url": "git://git.infradead.org/users/dwmw2/pidgin-headset.git",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Hide Inactive Buddies",
+    "homepage": "https://code.google.com/archive/p/pidgin-plugins",
     "info": "Plugin to hide inactive buddies in buddy list. Determine inactive buddy by status.",
     "type": "Miscellaneous",
-    "heading": "Hide Inactive Buddies"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-plugins"
+  },
+  {
+    "heading": "Instant messaging Remote Access",
     "homepage": "http://www.siorarina.net/instant-messaging-remote-access/",
     "info": "Client/server plugin to exec commands/open a shell in a virtual terminal on buddies PC. It's a kind of telnet via Instant Messaging",
-    "type": "Miscellaneous",
-    "heading": "Instant messaging Remote Access"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/imra/src/instant_messaging_remote_access_server-0.0.2.src.tar.gz",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Instant messaging NetCat Port Forwarding",
     "homepage": "http://www.siorarina.net/instant-messaging-netcat-port-forwarding/",
     "info": "Do a basic port forwarding via Instant messaging using NetCat",
-    "type": "Miscellaneous",
-    "heading": "Instant messaging NetCat Port Forwarding"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/imnpf/src/instant_messaging_ncat_port_forwarding-0.0.1.src.tar.gz",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Instant messaging Virtual Terminal",
     "homepage": "http://www.siorarina.net/instant-messaging-virtual-terminal/",
     "info": "Opens a Virtual Terminal in your PC controlled by buddies via IM",
-    "type": "Miscellaneous",
-    "heading": "Instant messaging Virtual Terminal"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/imvt/src/imvt-0.0.2.src.tar.gz",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Juick Plugin",
     "homepage": "https://github.com/mad/pidgin-juick-plugin/tree/master",
     "info": "Plugin specially designed for [http://juick.com Juick] xmpp-microblogging service, providing support for moods and inline avatars",
     "type": "Miscellaneous",
-    "heading": "Juick Plugin"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-plugins",
+    "repo_type": "git",
+    "repo_url": "https://github.com/mad/pidgin-juick-plugin/"
+  },
+  {
+    "heading": "Language Translator",
+    "homepage": "https://code.google.com/archive/p/pidgin-plugins",
     "info": "Plugin to translate outgoing text from English language to selected language.",
     "type": "Miscellaneous",
-    "heading": "Language Translator"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-plugins"
+  },
+  {
+    "broken": false,
+    "heading": "Meebo",
     "homepage": "http://jrpomeroy.com/pidgin/",
     "info": "auto add and accept guests for meebo me widget for livechat from websites in pidgin",
-    "type": "Miscellaneous",
-    "heading": "Meebo",
-    "broken": false
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "MegaHAL",
     "homepage": "https://pintant.cat/2011/03/18/pidgin-plugin-for-megahal/",
     "info": "connects Pidgin to MegaHAL. The contact will be answered by MegaHAL instead of by us",
-    "type": "Miscellaneous",
-    "heading": "MegaHAL"
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Morse Code Talk",
     "homepage": "https://sourceforge.net/projects/morsecodetalk/",
     "info": "This Plugin contains the entire Morse Code. Have one more friend around to use it, it can be a lot of fun to communicate in this way.",
-    "type": "Miscellaneous",
-    "heading": "Morse Code Talk"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://sourceforge.net/projects/morsecodetalk/files/Source/pidgin-morsecodetalk-source-1.0.0.tar.bz2/download",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "No IRC /who",
     "homepage": "https://github.com/EionRobb/pidgin-no-irc-who",
     "info": "Removes the periodic /who check from the IRC protocol, to stop flooding, slowdowns and \"Max sendq exceeded\" errors",
     "type": "Miscellaneous",
-    "heading": "No IRC /who"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-paintboard/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-no-irc-who"
+  },
+  {
+    "heading": "PaintBoard",
+    "homepage": "https://code.google.com/archive/p/pidgin-paintboard/",
     "info": "This plugin  allows you to draw with your friend on common board.",
     "type": "Miscellaneous",
-    "heading": "PaintBoard"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-paintboard/"
+  },
+  {
+    "heading": "pidginTeX",
     "homepage": "https://github.com/Micket/pidgintex",
     "info": "Renders mathematical expressions. Lots of options, size, colors, etc. Built upon Pidgin-LaTeX.",
     "type": "Miscellaneous",
-    "heading": "pidginTeX"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/Micket/pidgintex"
+  },
+  {
+    "heading": "Pidgin-convreverse",
     "homepage": "https://sourceforge.net/projects/convreverse/",
     "info": "Reverses any word on all conversation.",
-    "type": "Miscellaneous",
-    "heading": "Pidgin-convreverse"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://sourceforge.net/projects/convreverse/files/pidgin-convreverse-0.3/pidgin-convreverse-0.3.tar.gz/download",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Pidgin-eSpeak",
     "homepage": "https://github.com/coldfix/pidgin-tts",
     "info": "Reads incoming text messages via eSpeak (text-to-speech).",
     "type": "Miscellaneous",
-    "heading": "Pidgin-eSpeak"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/coldfix/pidgin-tts"
+  },
+  {
+    "heading": "Pidgin-GeoURI",
     "homepage": "https://github.com/gawen947/Pidgin-GeoURI",
     "info": "Convert geo URI scheme to Google Maps or OpenStreetMap link",
     "type": "Miscellaneous",
-    "heading": "Pidgin-GeoURI"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-google-contact/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/gawen947/Pidgin-GeoURI"
+  },
+  {
+    "heading": "Pidgin-google-contact",
+    "homepage": "https://code.google.com/archive/p/pidgin-google-contact/",
     "info": "Syncs the buddy list with google contacts",
     "type": "Miscellaneous",
-    "heading": "Pidgin-google-contact"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-googledesktop/",
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-google-contact/"
+  },
+  {
+    "heading": "Pidgin-googledesktop",
+    "homepage": "https://code.google.com/archive/p/pidgin-googledesktop/",
     "info": "Google Desktop Indexing Plugin for Pidgin",
     "type": "Miscellaneous",
-    "heading": "Pidgin-googledesktop"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-googledesktop/"
+  },
+  {
+    "heading": "Pidgin-LaTeX",
     "homepage": "https://sourceforge.net/projects/pidgin-latex/",
     "info": "Allows you to include mathematical formulas in your conversations.",
-    "type": "Miscellaneous",
-    "heading": "Pidgin-LaTeX"
-  }, {
+    "repo_type": "cvs",
+    "repo_url": "cvs -z3 -d:pserver:anonymous@a.cvs.sourceforge.net:/cvsroot/pidgin-latex co -P pidgin-latex",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Pidgin Embedded Video",
     "homepage": "https://github.com/stefanistrate/pidgin-embeddedvideo",
     "info": "A GTK plugin to watch videos directly into your Pidgin conversation",
     "type": "Miscellaneous",
-    "heading": "Pidgin Embedded Video"
-  }, {
-    "maintainer": "Konrad Gräfe",
+    "repo_type": "git",
+    "repo_url": "https://github.com/stefanistrate/pidgin-embeddedvideo"
+  },
+  {
+    "heading": "Pidgin ZNC Helper",
     "homepage": "https://github.com/kgraefe/pidgin-znc-helper",
     "info": "Display correct timestamps on messages replayed by a ZNC Bouncer.",
+    "maintainer": "Konrad Gräfe",
     "type": "Miscellaneous",
-    "heading": "Pidgin ZNC Helper"
-  }, {
-    "homepage": "https://code.google.com/p/pidglet/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/kgraefe/pidgin-znc-helper"
+  },
+  {
+    "heading": "Pidglet",
+    "homepage": "https://code.google.com/archive/p/pidglet/",
     "info": "A Windows Vista Sidebar Gadget that displays your buddy list.",
     "type": "Miscellaneous",
-    "heading": "Pidglet"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidglet/"
+  },
+  {
+    "heading": "PiFo",
     "homepage": "https://github.com/forflo/PiFo",
     "info": "Renders various latex markups and procedural graphics code.",
     "type": "Miscellaneous",
-    "heading": "PiFo"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/forflo/PiFo"
+  },
+  {
+    "heading": "Purple Plugin Pack",
     "homepage": "https://keep.imfreedom.org/pidgin/purple-plugin-pack/",
     "info": "Provides over 50 various plugins, including oft-requested IRC-related plugins.",
-    "type": "Miscellaneous",
-    "heading": "Purple Plugin Pack"
-  }, {
+    "repo_type": "hg",
+    "repo_url": "https://keep.imfreedom.org/pidgin/purple-plugin-pack/",
+    "type": "Miscellaneous"
+  },
+  {
+    "broken": true,
+    "heading": "QIP decoder",
     "homepage": "http://www.sedaha.cz/qip-decoder/",
     "info": "Corrects invalid incoming QIP 2005 diacritics and local symbols",
-    "type": "Miscellaneous",
-    "heading": "QIP decoder",
-    "broken": true
-  }, {
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Rainbow Bridge",
     "homepage": "https://github.com/boamaod/rainbow-bridge",
     "info": "Simple relay bot for Libpurple chats",
     "type": "Miscellaneous",
-    "heading": "Rainbow Bridge"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/boamaod/rainbow-bridge"
+  },
+  {
+    "heading": "RSS / ATOM",
     "homepage": "https://github.com/hrj/feedgin/",
     "info": "Shows Feed updates as messages in a conversation window. Requires Python and presently only works on Linux.",
     "type": "Miscellaneous",
-    "heading": "RSS / ATOM"
-  }, {
-    "homepage": "https://code.google.com/p/pidgin-sendscreenshot/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/hrj/feedgin/"
+  },
+  {
+    "broken": true,
+    "heading": "Send Screenshot",
+    "homepage": "https://code.google.com/archive/p/pidgin-sendscreenshot/",
     "info": "Take a screenshot and send it to a buddy.",
-    "type": "Miscellaneous",
-    "heading": "Send Screenshot",
-    "broken": true
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/p/pidgin-sendscreenshot/",
+    "type": "Miscellaneous"
+  },
+  {
+    "broken": true,
+    "heading": "STFW",
     "homepage": "https://linuxandwhatever.wordpress.com/stfw-pidgin-plugin/",
     "info": "A plugin that helps you teach your buddies how to use google.",
-    "type": "Miscellaneous",
-    "heading": "STFW",
-    "broken": true
-  }, {
-    "homepage": "https://code.google.com/p/urlscout/",
+    "repo_type": null,
+    "repo_url": null,
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "URL Scout",
+    "homepage": "https://code.google.com/archive/p/urlscout/",
     "info": "This plugin will lookup a url and display a web page title when you receive a link in a chat",
     "type": "Miscellaneous",
-    "heading": "URL Scout"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://code.google.com/archive/p/urlscout/"
+  },
+  {
+    "heading": "URL Shorten",
     "homepage": "https://github.com/danielb2/pidgin-plugins",
     "info": "Perl plugin to shorten long urls. Especially useful for finch. Download and put in plugins directory. URLs are shortened as they come in if they exceed maximum length setting. no action required. Requires some perl libraries to work.",
     "type": "Miscellaneous",
-    "heading": "URL Shorten"
-  }, {
-    "homepage": "http://www.siorarina.net/whats-my-ip/",
+    "repo_type": "git",
+    "repo_url": "https://github.com/danielb2/pidgin-plugins"
+  },
+  {
+    "heading": "What's my IP",
+    "homepage": "https://www.siorarina.net/whats-my-ip/",
     "info": "Allows buddies to get your external IP by writing 'ip' on IM chat",
-    "type": "Miscellaneous",
-    "heading": "What's my IP"
-  }, {
+    "repo_type": "source",
+    "repo_url": "https://siorarina.net/wmi/src/whats-my-ip-0.0.1.src.tar.gz",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "Wikipedia look-up",
     "homepage": "https://sourceforge.net/projects/pidginpluginfor/",
     "info": "Easy look-up received and typed words on Wikipedia.",
-    "type": "Miscellaneous",
-    "heading": "Wikipedia look-up"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://git.code.sf.net/p/pidginpluginfor/code",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "XMPP HTTP File Upload",
     "homepage": "https://github.com/Junker/purple-xmpp-http-upload",
     "info": "XEP-0363: HTTP File Upload plugin for libpurple (Pidgin, Finch, etc.)",
     "type": "Miscellaneous",
-    "heading": "XMPP HTTP File Upload"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/Junker/purple-xmpp-http-upload"
+  },
+  {
+    "heading": "XMPP Ignore Groups",
     "homepage": "https://github.com/EionRobb/pidgin-xmpp-ignore-groups",
     "info": "Ignores server-sent XMPP groups so that you can move buddies around on annoying servers (e.g. Facebook)",
     "type": "Miscellaneous",
-    "heading": "XMPP Ignore Groups"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/EionRobb/pidgin-xmpp-ignore-groups"
+  },
+  {
+    "heading": "XMPP MUC Presence",
     "homepage": "https://github.com/tmatz/pidgin-xmpp-muc-presence-plugin",
     "info": "Shows participant's presence icon in chat room.",
     "type": "Miscellaneous",
-    "heading": "XMPP MUC Presence"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/tmatz/pidgin-xmpp-muc-presence-plugin"
+  },
+  {
+    "heading": "XMPP Message Carbons",
     "homepage": "https://github.com/gkdr/carbons",
     "info": "Displays self-sent messages from other XMPP clients",
     "type": "Miscellaneous",
-    "heading": "XMPP Message Carbons"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/gkdr/carbons"
+  },
+  {
+    "heading": "XMPP Receipts",
     "homepage": "https://www.assembla.com/code/pidgin-xmpp-receipts/git/nodes",
     "info": "Shows a delivering notification if the recipient supports it",
-    "type": "Miscellaneous",
-    "heading": "XMPP Receipts"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://git.assembla.com/pidgin-xmpp-receipts.git",
+    "type": "Miscellaneous"
+  },
+  {
+    "heading": "XMPP URI Links",
     "homepage": "https://github.com/jsravn/xmpp-uri",
     "info": "Support clicking on xmpp links, such as xmpp:foo@bar.net?message to open a chat window.",
     "type": "Miscellaneous",
-    "heading": "XMPP URI Links"
-  }, {
+    "repo_type": "git",
+    "repo_url": "https://github.com/jsravn/xmpp-uri"
+  },
+  {
+    "heading": "YouTube Title Adder",
     "homepage": "https://github.com/Eckankar/YouTubeTitleAdderPidgin",
     "info": "Displays video titles for incoming YouTube links.",
     "type": "Miscellaneous",
-    "heading": "YouTube Title Adder"
+    "repo_type": "git",
+    "repo_url": "https://github.com/Eckankar/YouTubeTitleAdderPidgin"
   }
 ]
