Skip to content

Commit

Permalink
Proxy mit tiff's kompatibel machen #137
Browse files Browse the repository at this point in the history
  • Loading branch information
konstin committed May 8, 2016
1 parent 61434e1 commit f965357
Show file tree
Hide file tree
Showing 14 changed files with 2,777 additions and 1,019 deletions.
Binary file added html/media/testdokument.odt
Binary file not shown.
Binary file added html/media/testdokument.pdf
Binary file not shown.
Binary file added html/media/testdokument.tiff
Binary file not shown.
5 changes: 3 additions & 2 deletions protected/config/main-codeception.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@
define("TILE_CACHE_DIR", RIS_DATA_DIR . "tile-cache/tiles/");
define("EMAIL_LOG_FILE", "/tmp/email.log");

define("RIS_BASE_URL", "http://www.ris-muenchen.de/RII/RII/");
define("RIS_BA_BASE_URL", "http://www.ris-muenchen.de/RII/BA-RII/");
define("RIS_URL_PREFIX", "https://www.ris-muenchen.de");
define("RIS_BASE_URL", RIS_URL_PREFIX . "/RII/RII/");
define("RIS_BA_BASE_URL", RIS_URL_PREFIX . "/RII/BA-RII/");
define("OPARL_10_ROOT", SITE_BASE_URL . '/oparl/v1.0');

define("DOCUMENT_DATE_ACCURATE_SINCE", 1388530800); // 1. Januar 2014
Expand Down
10 changes: 3 additions & 7 deletions protected/config/main.template.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,10 @@
define("TILE_CACHE_DIR", RIS_DATA_DIR . "tile-cache/tiles/");
define("EMAIL_LOG_FILE", "/tmp/email.log");

<<<<<<< HEAD
define("RIS_BASE_URL", "http://www.ris-muenchen.de/RII/RII/");
define("RIS_BA_BASE_URL", "http://www.ris-muenchen.de/RII/BA-RII/");
define("RIS_URL_PREFIX", "https://www.ris-muenchen.de");
define("RIS_BASE_URL", RIS_URL_PREFIX . "/RII/RII/");
define("RIS_BA_BASE_URL", RIS_URL_PREFIX . "/RII/BA-RII/");
define("OPARL_10_ROOT", SITE_BASE_URL . '/oparl/v1.0');
=======
define("RIS_BASE_URL", "https://www.ris-muenchen.de/RII/RII/");
define("RIS_BA_BASE_URL", "https://www.ris-muenchen.de/RII/BA-RII/");
>>>>>>> master

define("DOCUMENT_DATE_ACCURATE_SINCE", 1388530800); // 1. Januar 2014
define("DOCUMENT_DATE_UNKNOWN_BEFORE", 1212271200); // 1. Juni 2008
Expand Down
3 changes: 2 additions & 1 deletion protected/config/urls.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
SITE_BASE_URL . '/bezirksausschuss/<ba_nr:\d+>/dokumente' => 'index/baDokumente',
SITE_BASE_URL . '/bezirksausschuss/<ba_nr:\d+>' => 'index/ba',
SITE_BASE_URL . '/dokumente/<id:[0-9-]+>' => 'index/dokumente',
SITE_BASE_URL . '/dokumente/<id:[0-9-]+>.pdf' => 'index/documentProxy',
SITE_BASE_URL . '/dokumente/<id:[0-9-]+>.pdf' => 'index/documentProxy', // Alte Variante; Sollte irgendwann(TM) gelöscht werden; TODO: redirect
SITE_BASE_URL . '/dokumente/<id:[0-9-]+>/datei' => 'index/documentProxy',
SITE_BASE_URL . '/stadtraetIn/<id:\d+>_<name:[^\/]*>' => 'personen/personAlt',
SITE_BASE_URL . '/personen/<id:\d+>_<name:[^\/]*>' => 'personen/person',
SITE_BASE_URL . '/personen/<id:\d+>' => 'personen/person',
Expand Down
30 changes: 21 additions & 9 deletions protected/controllers/IndexController.php
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@ protected function sucheBenachrichtigungenAnmelden($curr_krits, $code)
];
}


/**
* @param Dokument[] $dokumente
* @param null|RISSucheKrits $filter_krits
Expand Down Expand Up @@ -479,26 +478,39 @@ public function actionSuche($code = "")
}
}


/**
* @param int $id
* @param $id
* @return true wenn das Dokument erfolgreich ausgegeben wurde
*/
public function actionDocumentProxy($id)
public static function dokumentAusgeben($id)
{
/** @var Dokument $dokument */
$dokument = Dokument::model()->findByPk($id);
try {
$data = ris_download_string($dokument->getLink());
// TODO content type direkt von curl erfragen
if (substr($dokument->url, -strlen('.pdf')) === '.pdf') {
Header('Content-Type: application/pdf');
} else if (substr($dokument->url, -strlen('.tiff')) === '.tiff') {
Header('Content-Type: image/tiff');
}

Header("Content-Type: application/pdf; charset=UTF-8");
echo $data;
echo ris_download_string($dokument->getLink());
return true;
} catch (Exception $e) {
$fp = fopen(TMP_PATH . "ris-file-not-found.log", "a");
fwrite($fp, $id . " - " . "https://www.ris-muenchen.de" . $dokument->url . "\n");
fwrite($fp, $id . " - " . $dokument->getLink() . "\n");
fclose($fp);
header("HTTP/1.0 404 Not Found");
die();
return false;
}
}

/**
* @param int $id
*/
public function actionDocumentProxy($id)
{
self::dokumentAusgeben($id);
Yii::app()->end();
}

Expand Down
2 changes: 1 addition & 1 deletion protected/controllers/Oparl10Controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*/
class OParl10Controller extends CController {
const VERSION = 'https://oparl.org/specs/1.0/';

/**
* Erzeugt die URL zu einem einzelnen OParl-Objekt
*/
Expand Down
12 changes: 10 additions & 2 deletions protected/models/Dokument.php
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ public function getLink($add_params = [])
if ($this->typ == static::$TYP_RATHAUSUMSCHAU) {
if ($this->rathausumschau->datum >= 2009) return "http://www.muenchen.de" . $this->url;
else return "http://www.muenchen.de/rathaus/Stadtinfos/Presse-Service.html";
} else return "https://www.ris-muenchen.de" . $this->url;
} else return RIS_URL_PREFIX . $this->url;
}

/** @return string */
Expand Down Expand Up @@ -441,7 +441,7 @@ public static function create_if_necessary($typ, $antrag_termin_tagesordnungspun
*/
public function getOriginalLink()
{
return "https://www.ris-muenchen.de" . $this->url;
return RIS_URL_PREFIX . $this->url;
}

/**
Expand All @@ -467,6 +467,14 @@ public function getLinkZumDokument()
return Yii::app()->createUrl("index/dokumente", ["id" => $this->id]);
}

/**
* @return string
*/
public function getLinkZurDatei()
{
return Yii::app()->createUrl("index/dokumentenproxy", ["id" => $this->id]);
}

private static $dokumente_cache = [];

/**
Expand Down
4 changes: 2 additions & 2 deletions tests/_data/data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ INSERT INTO `dokumente` VALUES (3,'stadtrat_antrag',4,NULL,NULL,NULL,NULL,'',0,'
INSERT INTO `dokumente` VALUES (4,'stadtrat_antrag',4,NULL,NULL,NULL,NULL,'',0,'Ein anderes Dokument von mehreren in einem Antrag','','2016-03-07 20:18:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2016-05-02 17:53:08','2016-05-02 17:53:08');
INSERT INTO `dokumente` VALUES (5,NULL,5,NULL,NULL,NULL,NULL,'',0,'Ein Dokument von einem Antrag mit einem Dokument','','2016-03-07 20:27:52',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2016-05-02 17:53:08','2016-05-02 17:53:08');
INSERT INTO `dokumente` VALUES (6,NULL,NULL,NULL,NULL,NULL,NULL,'',0,'Dokument ohne Antrag','','2016-03-07 20:32:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2016-05-02 17:53:08','2016-05-02 17:53:08');
INSERT INTO `dokumente` VALUES (7,NULL,6,4,1,2,NULL,'/RII/RII/7.pdf',0,'Dokument mit vielen Eigenschaften','Dokument viele Eigenschaften','2016-04-23 16:30:20','2016-04-21 22:00:00',NULL,NULL,NULL,NULL,10,'omnipage',NULL,'2016-05-02 17:53:08','2016-05-02 17:53:08');
INSERT INTO `dokumente` VALUES (8,NULL,NULL,NULL,NULL,NULL,NULL,'/RII/RII/8.tiff',0,'Dokument (tiff) mit wenig Eigenschaften','','2016-04-23 16:30:20',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2016-05-02 17:53:08','2016-05-02 17:53:08');
INSERT INTO `dokumente` VALUES (7,NULL,6,4,1,2,NULL,'/media/testdokument.pdf',0,'Dokument (pdf) mit vielen Eigenschaften','Dokument viele Eigenschaften','2016-04-23 16:30:20','2016-04-21 22:00:00',NULL,NULL,NULL,NULL,10,'omnipage',NULL,'2016-05-02 17:53:08','2016-05-08 20:57:23');
INSERT INTO `dokumente` VALUES (8,NULL,NULL,NULL,NULL,NULL,NULL,'/media/testdokument.tiff',0,'Dokument (tiff) mit wenig Eigenschaften','','2016-04-23 16:30:20',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2016-05-02 17:53:08','2016-05-08 20:57:28');
INSERT INTO `dokumente` VALUES (9,NULL,NULL,NULL,NULL,NULL,1,'http://example.org/rathausumschau/1-rathaus.pdf',0,'Rathausumschau','','2016-04-23 16:30:20',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2016-05-02 17:53:08','2016-05-02 17:53:08');
/*!40000 ALTER TABLE `dokumente` ENABLE KEYS */;

Expand Down
Loading

0 comments on commit f965357

Please sign in to comment.