コード例 #1
0
ファイル: feed.php プロジェクト: zatoshi/raidplaner
$Out = new Out();
$Out->pushValue("title", "Raidplaner RSS feed");
$Out->pushValue("link", $BaseURL . "index.php");
$Out->pushValue("description", "Upcoming raids for the next 2 weeks.");
$Out->pushValue("language", "en-en");
$Out->pushValue("copyright", "packedpixel");
$Out->pushValue("pubDate", date(DATE_RSS));
// Requires private token to be visible
$Token = isset($_REQUEST["token"]) ? $_REQUEST["token"] : null;
if (Api::testPrivateToken($Token)) {
    // Setting the correct timezones
    $Timezone = isset($_REQUEST["timezone"]) ? $_REQUEST["timezone"] : date_default_timezone_get();
    // Query API
    date_default_timezone_set("UTC");
    $Parameters = array("start" => time() - 24 * 60 * 60, "end" => time() + 14 * 24 * 60 * 60, "limit" => 0, "closed" => true, "canceled" => true);
    $Locations = Api::queryLocation(null);
    $Raids = Api::queryRaid($Parameters);
    $LocationName = array();
    foreach ($Locations as $Location) {
        $LocationName[$Location["Id"]] = $Location["Name"];
    }
    // Generate RSS content
    date_default_timezone_set($Timezone);
    foreach ($Raids as $Raid) {
        $Start = date("H:i", intval($Raid["Start"]));
        $End = date("H:i", intval($Raid["End"]));
        $Out->pushValue("item", array("title" => $LocationName[$Raid["LocationId"]] . " (" . $Raid["Size"] . ")", "description" => "Status: " . $Raid["Status"] . "\nFrom " . $Start . " to " . $End . "\n" . $Raid["Description"], "link" => $BaseURL . "index.php#raid," . $Raid["RaidId"], "author" => "Raidplaner", "guid" => $Raid["RaidId"], "pubDate" => date(DATE_RSS, intval($Raid["Start"]))));
    }
}
$Out->flushXML("channel");
echo '</rss>';
コード例 #2
0
ファイル: gcal.php プロジェクト: zatoshi/raidplaner
 public function onRaidModify($aRaidId)
 {
     if ($this->authenticate()) {
         $Parameters = array('raid' => $aRaidId, 'canceled' => true, 'closed' => true);
         $RaidResult = Api::queryRaid($Parameters);
         if (count($RaidResult) > 0) {
             $Raid = $RaidResult[0];
             $LocationName = $this->mLocations[$Raid['LocationId']];
             $Timezone = date_default_timezone_get();
             try {
                 date_default_timezone_set('UTC');
                 $Start = new Google_Service_Calendar_EventDateTime();
                 $Start->setDateTime(date($this->mDateFormat, intval($Raid['Start'])));
                 $Start->setTimeZone('UTC');
                 $End = new Google_Service_Calendar_EventDateTime();
                 $End->setDateTime(date($this->mDateFormat, intval($Raid['End'])));
                 $End->setTimeZone('UTC');
                 $Events = $this->mCalService->events->listEvents(GOOGLE_CAL_ID, array('sharedExtendedProperty' => 'RaidId=' . $aRaidId));
                 // There should be only one event, but we're a bit
                 // paranoid here
                 foreach ($Events->getItems() as $Event) {
                     $Event->setLocation($LocationName);
                     $Event->setDescription($Raid['Description']);
                     if ($Raid['Status'] == 'canceled') {
                         $Event->setSummary('[canceled] ' . $LocationName . ' (' . $Raid['Size'] . ')');
                     } else {
                         $Event->setSummary($LocationName . ' (' . $Raid['Size'] . ')');
                     }
                     $Event->setStart($Start);
                     $Event->setEnd($End);
                     $this->mCalService->events->update(GOOGLE_CAL_ID, $Event->getid(), $Event);
                 }
             } catch (Exception $Ex) {
                 $Out = Out::getInstance();
                 $Out->pushError($Ex->getMessage());
             }
             date_default_timezone_set($Timezone);
         }
     }
 }