diff options
Diffstat (limited to 'update')
-rw-r--r-- | update/plugin/mediawiki/trunk/extensions/instadisc/instadisc.php | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/update/plugin/mediawiki/trunk/extensions/instadisc/instadisc.php b/update/plugin/mediawiki/trunk/extensions/instadisc/instadisc.php index 93cdd82..7601c71 100644 --- a/update/plugin/mediawiki/trunk/extensions/instadisc/instadisc.php +++ b/update/plugin/mediawiki/trunk/extensions/instadisc/instadisc.php | |||
@@ -15,9 +15,9 @@ $wgHooks['ArticleSaveComplete'][] = 'instaDisc_sendItem'; | |||
15 | 15 | ||
16 | function instaDisc_sendItem(&$article, &$user, &$text, &$summary, &$minoredit, &$watchthis, &$sectionanchor, &$flags, &$revision) | 16 | function instaDisc_sendItem(&$article, &$user, &$text, &$summary, &$minoredit, &$watchthis, &$sectionanchor, &$flags, &$revision) |
17 | { | 17 | { |
18 | global $instaDisc_password, $instaDisc_subscriptionPersonal, $instaDisc_seriesURL, $instaDisc_seriesUsername, $instaDisc_seriesPassword, $instaDisc_subscriptionID, $instaDisc_subscriptionURL, $instaDisc_subscriptionTitle, $instaDisc_subscriptionCategory; | 18 | global $instaDisc_password, $instaDisc_subscriptionPersonal, $instaDisc_seriesURL, $instaDisc_seriesUsername, $instaDisc_seriesPassword, $instaDisc_subscriptionID, $instaDisc_subscriptionURL, $instaDisc_subscriptionTitle; |
19 | 19 | ||
20 | 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)) | 20 | 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)) |
21 | { | 21 | { |
22 | return false; | 22 | return false; |
23 | } | 23 | } |
@@ -27,7 +27,7 @@ function instaDisc_sendItem(&$article, &$user, &$text, &$summary, &$minoredit, & | |||
27 | $url = $article->getTitle()->getFullURL(); | 27 | $url = $article->getTitle()->getFullURL(); |
28 | 28 | ||
29 | $encID = 0; | 29 | $encID = 0; |
30 | if ($instaDisc_password != '') | 30 | if (($instaDisc_password != '') && (extension_loaded('mcrypt')) |
31 | { | 31 | { |
32 | $encID = encryptData($title, $author, $url, $instaDisc_password); | 32 | $encID = encryptData($title, $author, $url, $instaDisc_password); |
33 | } | 33 | } |
@@ -44,7 +44,7 @@ function instaDisc_sendItem(&$article, &$user, &$text, &$summary, &$minoredit, & | |||
44 | new xmlrpcval($instaDisc_subscriptionID, 'string'), | 44 | new xmlrpcval($instaDisc_subscriptionID, 'string'), |
45 | new xmlrpcval($instaDisc_subscriptionURL, 'string'), | 45 | new xmlrpcval($instaDisc_subscriptionURL, 'string'), |
46 | new xmlrpcval($instaDisc_subscriptionTitle, 'string'), | 46 | new xmlrpcval($instaDisc_subscriptionTitle, 'string'), |
47 | new xmlrpcval($instaDisc_subscriptionCategory, 'string'), | 47 | new xmlrpcval('page-change', 'string'), |
48 | new xmlrpcval($instaDisc_subscriptionPersonal, 'string'), | 48 | new xmlrpcval($instaDisc_subscriptionPersonal, 'string'), |
49 | new xmlrpcval($title, 'string'), | 49 | new xmlrpcval($title, 'string'), |
50 | new xmlrpcval($author, 'string'), | 50 | new xmlrpcval($author, 'string'), |
@@ -64,3 +64,32 @@ function instaDisc_sendItem(&$article, &$user, &$text, &$summary, &$minoredit, & | |||
64 | return false; | 64 | return false; |
65 | } | 65 | } |
66 | } | 66 | } |
67 | |||
68 | function encryptData(&$title, &$author, &$url, $password) | ||
69 | { | ||
70 | $encID = rand(1,2147483647); | ||
71 | |||
72 | $cipher = "rijndael-128"; | ||
73 | $mode = "cbc"; | ||
74 | $key = substr(md5(substr(str_pad($password,16,$encID),0,16)),0,16); | ||
75 | |||
76 | $td = mcrypt_module_open($cipher, "", $mode, ""); | ||
77 | |||
78 | $title = encryptString($td, $key, $title); | ||
79 | $author = encryptString($td, $key, $author); | ||
80 | $url = encryptString($td, $key, $url); | ||
81 | |||
82 | mcrypt_module_close($td); | ||
83 | |||
84 | return $encID; | ||
85 | } | ||
86 | |||
87 | function encryptString($td, $key, $string) | ||
88 | { | ||
89 | mcrypt_generic_init($td, $key, strrev($key)); | ||
90 | $string = bin2hex(mcrypt_generic($td, $string)); | ||
91 | mcrypt_generic_deinit($td); | ||
92 | |||
93 | return $string; | ||
94 | } | ||
95 | |||