index.html 5.1 KB

  2. <html>
  3. <head>
  4. <title>#git bot interface</title>
  5. <link rel="stylesheet" type="text/css" href="../style.css">
  6. <link rel="shortcut icon" href="/git/bot/favicon.ico">
  7. </head>
  8. <body>
  9. <h1>#git bot interface</h1>
  10. <h2>Functions</h2>
  11. <p>Here are your choices so far:
  12. <ul>
  13. <li><a href="faq.php">List FAQ entries</a>
  14. <li><a href="trigger.php">List active triggers</a> (those things that
  15. look like !<em>foo</em>)
  16. <li><a href="voice.php">Get voiced on the channel</a> (to bypass the
  17. spam filter without a freenode account)
  18. </ul>
  19. <h2>Introduction</h2>
  20. <p>The following features are available on IRC:
  21. <ul>
  22. <li><strong>Triggers</strong>: inline commands in the form of !<em>foo</em>
  23. (<a href="trigger.php">list</a>) spit out a previously defined text for
  24. <em>foo</em>. It will be addressed to whoever you addressed with the line that
  25. you used the trigger in. It can be used anywhere in the middle of a line,
  26. though it should not run into other words.
  27. <ul><li><strong>Edit</strong>: If you are logged into NickServ, you
  28. can use ".trigger_edit &lt;trigger&gt; &lt;new expansion&gt;" to
  29. change the value of a trigger (no "!" there).
  30. <li><strong>Add new</strong>: Only available to selected people; same
  31. syntax as for editing. If you have been hanging out in #git for quite
  32. some time and haven't been selected yet, go shout at jast to make it
  33. happen.
  34. <li><strong>Aliases</strong>: to make one trigger an alias for
  35. another, set its contents to "@!othertrigger".
  36. <li><strong>Matching</strong>: if a request for !foo doesn't find an
  37. expansion named "foo", it will search for other names that
  38. <em>contain</em> "foo", and will spit out the shortest match instead.
  39. <li><strong>Private delivery</strong>: append "@p" to a trigger to
  40. have the response delivered to the person you are addressing, in a
  41. NOTICE.
  42. </ul>
  43. <li><strong>Manpages</strong>: Say something like "man git-commit" to show a
  44. link to one of git's manpages. Addressing works the same as for triggers.
  45. <li><strong>FAQs</strong>: Say something like "faq non-bare" to link to an FAQ
  46. from the git wiki. Valid keywords are the anchors used on the wiki page.
  47. Addressing works the same as for triggers.
  48. <li><strong>Knowledge base</strong>: Use ".info <em>query</em>" to query a
  49. general knowledge base that will try to match the query against many things,
  50. including: Wikipedia, github, Sourceforge, calculator, Merriam-Webster,
  51. TheFreeDictionary. Powered by <a href="//">DuckDuckGo</a>'s
  52. ZeroClick Info API.
  53. <li><strong>Web search</strong>: Use ".search <em>query</em>" to get up to
  54. three web search results. Powered by <a
  55. href="//">DuckDuckGo</a>.
  56. <li><strong>Web login</strong>: use the ".weblogin" command to get a link for
  57. activating extra features on the web page, such as editing and reverting
  58. trigger texts.
  59. <li><strong>Random stuff</strong>: use the ".random" command to get a random
  60. line of wisdom (well, a random line of text, at any rate) contributed by a
  61. user.
  62. <ul><li><strong>Add</strong>: you can contribute lines if you are
  63. logged in. Simply use the command ".random add <em>Your line
  64. here</em>".
  65. <li><strong>Delete</strong>: the bot appends a line's ID when
  66. outputting the line. You can use the command ".random delete 5" to
  67. delete the line with ID 5. Note that only a select few can delete
  68. lines.
  69. </ul>
  70. <li><strong>Draw graphs</strong>: the ".graph" and ".digraph" commands are
  71. interfaces to <a href="">Instagraph</a> (the syntax is
  72. explained there); this allows you to create nice commit history pictures and
  73. such right in the channel.
  74. <li><strong>Linking to things in the Git repo</strong>:
  75. <code>git::master:Documentation/</code> or <code>git::master</code> or
  76. <code>git::master/tree.h</code>
  77. <li><strong>Linking to things in other repos</strong>: <code>git[github
  78. jast/gitinfo]</code> etc. Other supported hosting sites are
  79. bitbucket, gitlab and repo[].
  80. <li><strong>Git version</strong>: #git has the most recent version of git in
  81. the topic. If you notice that it is out of date, use ".version" to
  82. automatically find the most recent version and update the topic. It may take
  83. up to 15 minutes after a release until it detects the new version.
  84. </ul>
  85. <p>Commands and triggers can be used both in-channel and privately (by using
  86. /msg). By default, private messages will be responded to via NOTICE to you
  87. personally... but if you do something like "/msg gitinfo someuser: !foo
  88. to:#git", the response will be addressed to someuser in #git. The channel must
  89. be specified because gitinfo hangs out (or supports hanging out) in multiple
  90. channels.
  91. <h2>Source code</h2>
  92. <ul>
  93. <li><a href="//">Bot</a> (requires Perl,
  94. common::sense, DBD::SQLite, File::Slurp, JSON, POE::Component::IRC and
  95. friends)
  96. <li><a href="//">web interface</a> (requires
  97. PHP 5.x)
  98. </ul>
  99. <p>Both projects are published under the GPL v3. When contributing, please
  100. sign off (using git commit -s) your commits to confirm:
  101. <ol type="a">
  102. <li>you have permission to license your changes under the GPL v3, and
  103. <li>you do license your changes under the GPL v3.
  104. </ol>
  105. <p>Commits that are not signed off will not be accepted.
  106. </body>
  107. </html>