diff --git a/bridges/InternationalInstituteForStrategicStudiesBridge.php b/bridges/InternationalInstituteForStrategicStudiesBridge.php
new file mode 100644
index 00000000..4c3c44c2
--- /dev/null
+++ b/bridges/InternationalInstituteForStrategicStudiesBridge.php
@@ -0,0 +1,82 @@
+ 'POST',
+ CURLOPT_POSTFIELDS => json_encode([
+ 'templateId' => [self::TEMPLATE_ID],
+ 'componentId' => self::COMPONENT_ID,
+ 'page' => '1',
+ 'amount' => 10,
+ 'filter' => (object)[],
+ 'tags' => null,
+ 'sortType' => 'DateDesc',
+ 'restrictionType' => 'None'
+ ])
+ ];
+ $headers = [
+ 'Accept: application/json, text/plain, */*',
+ 'Content-Type: application/json;charset=UTF-8'
+ ];
+ $json = getContents($url, $headers, $opts);
+ $data = json_decode($json);
+
+ foreach ($data->model->Results as $record) {
+ $this->items[] = [
+ 'uri' => self::URI . $record->Link,
+ 'title' => $record->Heading,
+ 'categories' => [$record->Topic],
+ 'author' => join(', ', array_map(function ($author) {
+ return $author->Name;
+ }, $record->Authors)),
+ 'timestamp' => DateTime::createFromFormat('jS F Y', $record->Date)->format('U'),
+ 'content' => $this->getContents(self::URI . $record->Link)
+ ];
+ }
+ }
+
+ private function getContents($uri)
+ {
+ $html = getSimpleHTMLDOMCached($uri);
+ $body = $html->find('body', 0);
+ $scripts = $body->find('script');
+ $result = '';
+
+ foreach ($scripts as $script) {
+ $script_text = $script->innertext;
+ if (str_contains($script_text, 'ReactDOM.render(React.createElement(Components.Reading')) {
+ $args = $this->getRenderArguments($script_text);
+ $result .= $args->Html;
+ } elseif (str_contains($script_text, 'ReactDOM.render(React.createElement(Components.ImagePanel')) {
+ $args = $this->getRenderArguments($script_text);
+ $image_tag = str_replace('src="/-', 'src="' . self::URI . '/-', $args->Image);
+ $result .= '
' . $args->Intro . '
'; + } + } + return $result; + } + + private function getRenderArguments($script_text) + { + $matches = []; + preg_match('/React\.createElement\(Components\.\w+, {(.*)}\),/', $script_text, $matches); + return json_decode('{' . $matches[1] . '}'); + } +}