diff --git a/bridges/TapasBridge.php b/bridges/TapasBridge.php
new file mode 100644
index 00000000..e512ad48
--- /dev/null
+++ b/bridges/TapasBridge.php
@@ -0,0 +1,87 @@
+ [
+ 'name' => 'URL\'s title / ID',
+ 'type' => 'text',
+ 'required' => true,
+ 'title' => 'Insert title from URL (tapas.io/series/THIS_TITLE/info) or title ID',
+ ],
+ 'extend_content' => [
+ 'name' => 'Include on-site content',
+ 'type' => 'checkbox',
+ 'title' => 'Activate to include images or chapter text',
+ ],
+// 'force_title' => [
+// 'name' => 'Force title use',
+// 'type' => 'checkbox',
+// 'title' => 'If you have trouble with feed getting, try this option.',
+// ],
+ ]
+ ];
+
+ protected $id;
+
+ public function getURI()
+ {
+ if ($this->id) {
+ return self::URI . 'rss/series/' . $this->id;
+ } else {
+ return self::URI . 'series/' . $this->getInput('title') . '/info/';
+ }
+ return self::URI;
+ }
+
+ protected function parseItem($feedItem)
+ {
+ $item = parent::parseItem($feedItem);
+
+ $namespaces = $feedItem->getNamespaces(true);
+ if (isset($namespaces['content'])) {
+ $description = $feedItem->children($namespaces['content']);
+ if (isset($description->encoded)) {
+ $item['content'] = (string)$description->encoded;
+ }
+ }
+
+ if ($this->getInput('extend_content')) {
+ $html = getSimpleHTMLDOM($item['uri']) or returnServerError('Could not request ' . $this->getURI());
+ if (!$item['content']) {
+ $item['content'] = '';
+ }
+ if ($html->find('article.main__body', 0)) {
+ foreach ($html->find('article', 0)->find('img') as $line) {
+ $item['content'] .= '';
+ }
+ } elseif ($html->find('article.main__body--book', 0)) {
+ $item['content'] .= $html->find('article.viewer__body', 0)->innertext;
+ } else {
+ $item['content'] .= '