Exemple #1
0
 /**
  * @param string
  */
 protected function getChannelObject($channel)
 {
     $channel = $this->channelFromAlias($channel);
     if (!$this->initialized) {
         $this->lazyInit();
     }
     $database = Db::getRegistry($this->_path);
     $sql = 'SELECT * FROM channels WHERE channel = "' . $database->escapeString($channel) . '"';
     $result = $database->query($sql);
     if (!$result) {
         throw new \Pyrus\ChannelFile\Exception('Failed to query channels table');
     }
     while ($res = $result->fetchArray(SQLITE3_ASSOC)) {
         break;
     }
     $ret = new \Pyrus\ChannelFile\v1();
     $ret->name = $channel;
     $ret->suggestedalias = $res['suggestedalias'];
     if ($res['alias']) {
         $ret->alias = $res['alias'];
     }
     $ret->summary = $res['summary'];
     $ret->setValidationPackage($res['validatepackage'], $res['validatepackageversion']);
     $ret->lastModified = $res['lastmodified'];
     $sql = 'SELECT channel, server, ssl, port FROM channel_servers
         WHERE channel = "' . $database->escapeString($channel) . '"';
     $result = $database->query($sql);
     if (!$result) {
         throw new \Pyrus\ChannelFile\Exception('Failed to query mirrors table');
     }
     while ($res = $result->fetchArray(SQLITE3_ASSOC)) {
         if ($res['server'] == $res['channel']) {
             $ret->port = $res['port'];
             $ret->ssl = $res['ssl'];
         } else {
             $ret->mirrors[$res['server']]->ssl = $res['ssl'];
             $ret->mirrors[$res['server']]->port = $res['port'];
         }
     }
     $sql = 'SELECT channel, server, baseurl, type FROM channel_server_rest
         WHERE channel= "' . $database->escapeString($channel) . '"';
     $result = $database->query($sql);
     if (!$result) {
         throw new \Pyrus\ChannelFile\Exception('Failed to query rest table');
     }
     while ($res = $result->fetchArray(SQLITE3_ASSOC)) {
         if ($res['server'] == $res['channel']) {
             $ret->protocols->rest[$res['type']]->baseurl = $res['baseurl'];
         } else {
             $ret->mirrors[$res['server']]->protocols->rest[$res['type']]->baseurl = $res['baseurl'];
         }
     }
     return $ret;
 }
Exemple #2
0
 function toChannelFile()
 {
     $ret = new \Pyrus\ChannelFile\v1();
     $ret->fromArray($this->getArray());
     return $ret;
 }