Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/php
- <?php
- require_once('schoolzone_api.php');
- $timezone = date_default_timezone_get();
- date_default_timezone_set('America/Edmonton');
- $time = localtime();
- $hour = $time[2];
- date_default_timezone_set($timezone);
- if ($hour > 18 || $hour < 6) exit();
- unset($hour, $time, $timezone);
- $keyconst = "Xq1Ai-7PFP?/ubdGQmthGXi=Y)Ipao\x{-6;MZ1EQ7G=}'rZq)Sc1f$oa$6Ghpz";
- $splittoken = "(<*>)";
- $fromemail = "Grade Notifier <noreply@ms-ss.net>";
- $mailsubject = "Grade Update";
- $no_mark_read = $_REQUEST["no_mark_read"];
- $override_doall = $_REQUEST["override_doall"];
- $showpreview = $_REQUEST["showpreview"];
- $nomail = $_REQUEST["nomail"];
- if (isset($_REQUEST["generatedata"]))
- {
- if (!isset($_REQUEST["user"]))
- {
- echo generatorform();
- }
- else //spit out the updater url
- {
- $td = mcrypt_module_open('rijndael-128', '', 'ofb', '');
- $key = md5($_REQUEST["key"]);
- $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
- mcrypt_generic_init($td, substr(sha1($key.$keyconst), 0, mcrypt_enc_get_key_size($td)), $iv);
- $userchunk = implode( $splittoken, array($_REQUEST["user"], $_REQUEST["pass"], $_REQUEST["email"], $_REQUEST["year"]) );
- echo "http://ms-ss.net". $_SERVER['PHP_SELF'] ."?serialtoken=". base64_encode(base64_encode(mcrypt_generic($td, $userchunk)). "." .base64_encode($iv). "." .$key);
- mcrypt_generic_deinit($td);
- }
- exit();
- }
- $encdata = $_REQUEST["serialtoken"] or die("Error: user info not passed.");
- //serialtoken format: encchunk.IV.Key
- list($userchunk, $iv, $key) = explode(".", base64_decode($encdata), 3);
- $td = mcrypt_module_open('rijndael-128', '', 'ofb', '');
- mcrypt_generic_init($td, substr(sha1($key.$keyconst), 0, mcrypt_enc_get_key_size($td)), base64_decode($iv));
- $decrypted = mdecrypt_generic($td, base64_decode($userchunk));
- mcrypt_generic_deinit($td);
- list($user, $pass, $email, $schoolyear) = explode($splittoken, $decrypted, 4);
- if (!$schoolyear) die ("Invalid data chunk.");
- $sz = new SZ_Conn($user, $pass, $schoolyear);
- $sz->open() or die("Login failed.");
- $availmarks = $sz->getReportList() or die("Couldn't get report list");
- $msgcount = 1;
- $send[1]='';
- foreach ($availmarks as $subject)
- {
- if (!$subject['accessdate'] || $override_doall) //not viewed
- {
- $report = $sz->getReport( $subject['reportno'] );
- $avg = $sz->getAverage( $report );
- $classavg = $sz->getClassAverage( $report );
- $avgstring = $subject["coursename"]. " - " . ($avg? $avg.'%': 'avg. unavailable') . ($classavg? " (Class: ".$classavg."%)":'');
- if (strlen("[$mailsubject]\n".$send[$msgcount]."\n".$avgstring) >= 128) $msgcount++;
- if (strlen($send[$msgcount])) $send[$msgcount] .= "\n";
- $send[$msgcount] .= $avgstring;
- if (!$no_mark_read) $sz->markReportViewed( $subject['reportno'] ); //comment out during debug
- }
- }
- if ($showpreview) echo "<pre><ol>";
- foreach ($send as $message)
- {
- if ($message) domail($email, $fromemail, $mailsubject, $message);
- }
- if ($showpreview) echo "</ol></pre>";
- function domail($to, $from, $subject, $message)
- {
- global $showpreview, $nomail;
- $output_headers = 'MIME-Version: 1.0' . "\r\n";
- $output_headers .= 'Content-Type: text/plain; charset=ISO-8859-1' . "\r\n";
- $output_headers .= 'From: ' . $from . "\r\n";
- if (!$nomail) mail($to, "$subject", $message, $output_headers);
- if ($showpreview) echo "<li>[$subject]\n$message</li>";
- }
- function generatorform() //ugly ugly ugly
- {
- return "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">".
- <<<EOF
- <!--?>-->
- <p><label for="user">User: </label><input type="text" name="user" id="user" value="" size="40" /></p>
- <p><label for="pass">Pass: </label><input type="password" name="pass" id="pass" value="" size="40" /></p>
- <p><label for="email">Email: </label><input type="text" name="email" id="email" value="" size="40" /></p>
- <p><label for="year">Year: </label><input type="text" name="year" id="year" value="200809" size="8" /></p>
- <p><label for="key">Key: </label><input type="text" name="key" id="key" value="" size="128" /></p>
- <input type="hidden" name="generatedata" id="generatedata" value="true" />
- <p><input type="submit" value="Submit" /></p>
- </form>
- <!--<?php -->
- EOF;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement