Thu, 21 Jul 2022 01:10:22 -0500
Update pidgin for the purple_account_manager_get_(in)active deprecations
Testing Done:
Compiled and made sure the menus still functioned as expected.
Reviewed at https://reviews.imfreedom.org/r/1536/
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
1 | Title: Plugin IDs |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
2 | Slug: plugin-ids |
| 7335 | 3 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
4 | ## Plugin IDs |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
5 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
6 | ### Introduction |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
7 | |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
8 | Every plugin contains a unique identifier. Third-party plugins (that is, |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
9 | plugins written by anyone who is not a libpurple, Pidgin, or Finch developer) |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
10 | are expected to use a plugin ID that follows a specific format. This format |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
11 | categorizes plugins and makes duplicate IDs highly unlikely. |
| 7335 | 12 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
13 | ### Format |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
14 | |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
15 | The basic format of a plugin ID is as follows: |
| 7335 | 16 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
17 | ``` |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
18 | type-username-pluginname |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
19 | ``` |
| 7335 | 20 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
21 | The ***type*** indicator specifies the type of plugin. This must be one |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
22 | of the following: |
| 7335 | 23 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
24 | #### Types Of Plugins |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
25 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
26 | core |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
27 | : A core libpurple plugin, capable of being loaded in any program using |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
28 | libpurple. Core plugins may not contain any UI-specific code. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
29 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
30 | prpl |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
31 | : A protocol plugin. This is a core plugin which provides libpurple the ability |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
32 | to connect to another IM or chat network. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
33 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
34 | gtk |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
35 | : A GTK+ (a.k.a. Pidgin) plugin. These plugins may use GTK+ code, but may not |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
36 | use window toolkit code, such as X11, Win32, Cocoa, or Carbon. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
37 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
38 | gtk-x11 |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
39 | : A GTK+ plugin that uses X11 code. These plugins may use both GTK+ code and |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
40 | X11 code, allowing to hook into features specific to X11. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
41 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
42 | gtk-win32 |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
43 | : A GTK+ plugin that uses Win32 code. These plugins may use both GTK+ code and |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
44 | Win32 code, allowing to hook into features available on Windows. |
|
20898
43fed61d11a1
I basically copied most of
Will Thompson <resiak@pidgin.im>
parents:
20897
diff
changeset
|
45 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
46 | gnt |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
47 | : A GNT (a.k.a. Finch) plugin. These plugins may use GNT code. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
48 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
49 | The ***username*** must be a unique identifier for you. It |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
50 | ***should*** be your https://developer.pidgin.im Trac user ID. Failing that, you |
|
40967
d7b082e438b5
Update IRC channel references to Libera.chat
Jonathan Champ <jrchamp@ncsu.edu>
parents:
40962
diff
changeset
|
51 | could use your SourceForge user ID or your Libera.chat IRC nickname, if you |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
52 | have either. The https://developer.pidgin.im Trac user ID is preferred. |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
53 | Do ***not*** leave this field blank! |
|
20898
43fed61d11a1
I basically copied most of
Will Thompson <resiak@pidgin.im>
parents:
20897
diff
changeset
|
54 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
55 | The ***pluginname*** is the name of your plugin. It is usually all |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
56 | lowercase letters and matches the static plugin ID (the first argument to |
|
40962
19e53c9cab73
Remove `PURPLE_PLUGIN_INIT` from docs.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
37097
diff
changeset
|
57 | the GPLUGIN_NATIVE_PLUGIN_DECLARE() macro call), although it can be anything you |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
58 | like. Do ***not*** include version information in the plugin ID--the |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
59 | `PurplePluginInfo` object already has a property for this. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
60 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
61 | ### One Last Rule For Plugin IDs |
|
20898
43fed61d11a1
I basically copied most of
Will Thompson <resiak@pidgin.im>
parents:
20897
diff
changeset
|
62 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
63 | Plugin IDs may ***NOT*** contain spaces. If you need a space, use another |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
64 | hyphen (-). |
|
20898
43fed61d11a1
I basically copied most of
Will Thompson <resiak@pidgin.im>
parents:
20897
diff
changeset
|
65 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
66 | ### Exceptions To The Rule |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
67 | |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
68 | As with any rule there are exceptions. If you browse through the source |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
69 | tree you will see that the plugins we distribute with the Pidgin source |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
70 | do not contain a username field. This is because while one developer may |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
71 | have written each specific plugin, the plugins are maintained |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
72 | collectively by the entire development team. This lack of a username |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
73 | field is also an indicator that the plugin is one of our plugins and not |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
74 | a third-party plugin. |
| 7335 | 75 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
76 | Another exception to the rule is the |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
77 | [Purple Plugin Pack](https://keep.imfreedom.org/pidgin/purple-plugin-pack/). |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
78 | All plugins whose lives started in the Purple Plugin Pack use |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
79 | `"plugin_pack"` for the username field to indicate origination in |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
80 | the Purple Plugin Pack. |
|
20898
43fed61d11a1
I basically copied most of
Will Thompson <resiak@pidgin.im>
parents:
20897
diff
changeset
|
81 | |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
82 | These two exceptions are mentioned here for completeness. We don't |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
83 | encourage breaking the conventions set forth by the rules outlined above. |
|
20898
43fed61d11a1
I basically copied most of
Will Thompson <resiak@pidgin.im>
parents:
20897
diff
changeset
|
84 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
85 | ### Examples Of Well-Chosen Plugin IDs |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
86 | |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
87 | The following is a list of well-chosen Plugin IDs listing a few good examples. |
| 7335 | 88 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
89 | gtk-amc_grim-guifications |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
90 | : This is the plugin ID for the Guifications 2.x plugin. |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
91 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
92 | gtk-rlaager-album |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
93 | : This is the plugin ID for the Album plugin, which is now part of the |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
94 | Purple Plugin Pack. Its ID follows the rules because its life started prior |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
95 | to its inclusion in the Plugin Pack. |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
96 | |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
97 | core-rlaager-irchelper |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
98 | : This is the plugin ID for the IRC Helper plugin, which is now part of the |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
99 | Purple Plugin Pack. Its ID follows the rules because its life started prior |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
100 | to its inclusion in the Plugin Pack. |
| 7335 | 101 | |
|
41164
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
102 | ### Plugin Database |
|
d861b10105fb
Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents:
40967
diff
changeset
|
103 | |
|
35490
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
104 | Although it doesn't exist yet, in time there will be a plugin database |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
105 | on the Pidgin website, where users can download and install new plugins. |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
106 | Plugins will be accessed by your plugin ID, which is one reason why it |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
33955
diff
changeset
|
107 | must be unique. |