about summary refs log tree commit diff stats
path: root/update/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'update/plugin')
-rw-r--r--update/plugin/mediawiki/trunk/extensions/instadisc.php64
1 files changed, 64 insertions, 0 deletions
diff --git a/update/plugin/mediawiki/trunk/extensions/instadisc.php b/update/plugin/mediawiki/trunk/extensions/instadisc.php new file mode 100644 index 0000000..dec5a28 --- /dev/null +++ b/update/plugin/mediawiki/trunk/extensions/instadisc.php
@@ -0,0 +1,64 @@
1<?php
2
3/* InstaDisc Update - A Four Island Project */
4
5$wgExtensionCredits['other'][] = array(
6 'name' => 'InstaDisc',
7 'author' => 'Starla Insigna',
8 'url' => 'http://fourisland.com/projects/instadisc/wiki/Update/MediaWiki',
9 'description' => 'This plugin provides an InstaDisc feed for your MediaWiki wiki, a page-change subscription.'
10);
11
12$wgHooks['ArticleSaveComplete'][] = 'instaDisc_sendItem';
13
14function instaDisc_sendItem(&$article, &$user, &$text, &$summary, &$minoredit, &$watchthis, &$sectionanchor, &$flags, &$revision)
15{
16 global $instaDisc_password, $instaDisc_subscriptionPersonal, $instaDisc_seriesURL, $instaDisc_seriesUsername, $instaDisc_seriesPassword, $instaDisc_subscriptionID, $instaDisc_subscriptionURL, $instaDisc_subscriptionTitle, $instaDisc_subscriptionCategory;
17
18 if (!isset($instaDisc_password) || !isset($instaDisc_subscriptionPersonal) || !isset($instaDisc_seriesURL) || !isset($instaDisc_seriesUsername) || !isset($instaDisc_seriesPassword) || !isset($instaDisc_subscriptionID) || !isset($instaDisc_subscriptionURL) || !isset($instaDisc_subscriptionTitle) || !isset($instaDisc_subscriptionCategory))
19 {
20 return false;
21 }
22
23 $title = $article->getTitle()->getText();
24 $author = $user->getName();
25 $url = $article->getTitle()->getFullURL();
26
27 $encID = 0;
28 if ($instaDisc_password != '')
29 {
30 $encID = encryptData($title, $author, $url, $instaDisc_password);
31 }
32
33 $instaDisc_subscriptionPersonal = ($instaDisc_subscriptionPersonal == 'true' ? 'true' : 'false');
34
35 $verID = rand(1,2147483647);
36
37 $client = new xmlrpc_client($instaDisc_seriesURL);
38 $msg = new xmlrpcmsg("InstaDisc.sendFromUpdate", array( new xmlrpcval($instaDisc_seriesUsername, 'string'),
39 new xmlrpcval(md5($instaDisc_seriesUsername . ':' . md5($instaDisc_seriesPassword) . ':' . $verID), 'string'),
40 new xmlrpcval($verID, 'int'),
41 new xmlrpcval($instaDisc_seriesURL, 'string'),
42 new xmlrpcval($instaDisc_subscriptionID, 'string'),
43 new xmlrpcval($instaDisc_subscriptionURL, 'string'),
44 new xmlrpcval($instaDisc_subscriptionTitle, 'string'),
45 new xmlrpcval($instaDisc_subscriptionCategory, 'string'),
46 new xmlrpcval($instaDisc_subscriptionPersonal, 'string'),
47 new xmlrpcval($title, 'string'),
48 new xmlrpcval($author, 'string'),
49 new xmlrpcval($url, 'string'),
50 new xmlrpcval(serialize(array()), 'string'),
51 new xmlrpcval($encID, 'int')));
52 $resp = $client->send($msg);
53 $val = $resp->value()->scalarVal();
54
55 if ($val == 2)
56 {
57 instaDisc_sendItem($article, $user, $text, $summary, $minoredit, $watchthis, $sectionanchor, $flags, $revision);
58 } else if ($val == 0)
59 {
60 return true;
61 } else {
62 return false;
63 }
64}