push tester
[push-tester.git] / www / add-article.php
1 <?php
2 header('Content-type: text/plain');
3 require_once __DIR__ . '/../data/config.php';
4
5 $time = time();
6 $timestr = date('Y-m-d', $time) . 'T' . date('H:i:s', $time);
7 $file = __DIR__ . '/articles/' . $timestr . '.htm';
8 $title = $timestr;
9 $content = `/usr/games/fortune`;
10
11 file_put_contents(
12     $file,
13     <<<HTM
14 <html>
15  <head>
16   <title>$title</title>
17  </head>
18  <body class="h-entry">
19   <h1>$title</h1>
20   <div class="e-content">$content</div>
21  </body>
22 </html>
23 HTM
24 );
25 echo "saved as " . $file . "\n";
26
27 //hub-notification
28 $params = array(
29     'hub.mode' => 'publish',
30     'hub.url'  => $self,
31 );
32 $enc = array();
33 foreach ($params as $key => $val) {
34     $enc[] = urlencode($key) . '=' . urlencode($val);
35 }
36 $postMsg = implode('&', $enc);
37
38 $ctx = stream_context_create(
39     array(
40         'http' => array(
41             'method' => 'POST',
42             'header' => array(
43                 'Content-type: application/x-www-form-urlencoded',
44             ),
45             'content' => $postMsg,
46             'ignore_errors' => true,
47         )
48     )
49 );
50
51 $res = file_get_contents($hub, false, $ctx);
52 list($http, $code, $rest) = explode(' ', $http_response_header[0]);
53 if (intval($code / 100) === 2) {
54     echo "notified hub\n";
55     exit();
56 }
57
58 echo "Error notifying hub: HTTP status was not 2xx; got $code\n";
59 echo $res . "\n";
60 ?>