summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-30 11:24:31 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-30 11:24:50 +0200
commita310a2188119f75e77e9a27ad44685973d5735af (patch)
treee87842310c8b3baceb1c45e0a5919866e488e0cb
parent5cf466ed48646e7a6687738b4ecfeb09a075a269 (diff)
some specds
-rw-r--r--3rdparty/ownfeed/spec.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/3rdparty/ownfeed/spec.php b/3rdparty/ownfeed/spec.php
new file mode 100644
index 000000000..40d628858
--- /dev/null
+++ b/3rdparty/ownfeed/spec.php
@@ -0,0 +1,60 @@
+<?php
+// TODO: atom has type attribute for values that have html/xhtml if given and have to be decoded
+// TODO: link attribute (rel etc)
+// TODO: can we distinguish between CDATA and plain content?
+
+$ownFeed = new OwnFeed([
+ 'user_agent' => 'ownFeed version 1',
+ 'connection_timeout' => 10,
+ 'timeout' => 10,
+ 'verify_ssl' => true,
+ 'http_version' => '1.1',
+ 'proxy_host' => '',
+ 'proxy_port' => 80,
+ 'proxy_user' => '',
+ 'proxy_password' => ''
+]);
+
+try {
+ $feed = $ownFeed->fetch($url);
+ // RSS || ATOM
+ $feed['title']; // <title>
+ $feed['link']; // <link> || <link href="">
+
+ foreach($feed['items'] as $item) {
+ $item['title']; // <title>
+ $item['link']; // <link> || <link href="">
+ $item['description']; // <description> || <summary> vs <content>
+ foreach ($item['authors'] as $author) { // <author> or <author><name><email></author>
+ $author['name'];
+ $author['email'];
+ }
+ $item['enclosure']['url']; // <enclosure url type> || <link rel="enclosure" type href>
+ $item['enclosure']['type'];
+ $item['id']; // <guid> || <id> || $item['hash']
+ $item['hash']; // hash over title + content
+ $item['pub_date']; // rfc 822 || rfc 3339
+ }
+} catch (OwnFeedException $e) {
+ // SSLVerificationException
+ // TimeoutException
+ // ForbiddenException
+ // NotFoundException
+ // MaximumRedirectException
+ // BadSourceException
+}
+
+/*
+curl_setopt($ch, CURLOPT_URL, $this->url);
+curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
+curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
+curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
+curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent);
+curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
+curl_setopt($ch, CURLOPT_FOLLOWLOCATION, ini_get('open_basedir') === '');
+curl_setopt($ch, CURLOPT_MAXREDIRS, $this->max_redirects);
+curl_setopt($ch, CURLOPT_ENCODING, '');
+curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // For auto-signed certificates...
+curl_setopt($ch, CURLOPT_WRITEFUNCTION, array($this, 'readBody'));
+curl_setopt($ch, CURLOPT_HEADERFUNCTION, array($this, 'readHeaders'));
+*/ \ No newline at end of file