Files
@ 3a35ca482014
Branch filter:
Location: SlatePermutate/inc/school.crawl.inc
3a35ca482014
3.3 KiB
text/x-povray
Added some text to clarify auto-adding
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | <?php
/*
* Copyright 2010 Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
*
* This file is a part of slate_permutate.
*
* slate_permutate is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* slate_permutate is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with slate_permutate. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* \file
* Routines that are only useful when crawling schools' websites for
* autofill section data.
*/
/**
* \brief
* Parse a simple time string into slate_permutate's time
* representation.
*
* \param $time
* An array compatible with the return value of strptime(). The only
* fields we use are 'tm_hour', which is from 0 through 23, and
* 'tm_min', which may be from 0 through 50.
*/
function school_crawl_time_format($time)
{
return sprintf('%02d%02d', $time['tm_hour'], $time['tm_min']);
}
/**
* \brief
* Take an array of day names and assemble them into
* slate_permutate's internal (weird) representation of a set of
* weekdays.
*
* This function is intended to make it easy for one to take the
* output of an explode() call. For example, to decode $days_str =
* 'Monday, Tuesday, Friday', one would do
* school_crawl_days_format(explode(', ', $days_str));
*
* \param $days
* An array of day names. These may be common abbreviations or
* truncations (any truncations must be two chars long for
* simplicity. One-char representations are supported, however, but
* use 'm', 't', 'w', 'h', 'f' to distinguish Thursday and
* Tuesday. 'r' may also be used for Thursday.). Case does not
* matter.
* \return
* slate_permutate's strange internal days representation.
*/
function school_crawl_days_format($days)
{
static $daymap_1 = array('m' => 1, 't' => 2, 'w' => 3, 'h' => 4, 'r' => 4, 'f' => 5);
static $daymap_2 = array('th' => 'h');
$my_days = array();
foreach ($days as $day)
{
$day_orig = $day;
$day = strtolower(substr(trim($day), 0, 2));
/*
* convert from two-char representation to one-char
* representation.n
*/
if (strlen($day) > 1)
{
if (isset($daymap_2[$day]))
$day = $daymap_2[$day];
else
$day = substr($day, 0, 1);
}
if (isset($daymap_1[$day]))
$my_days[$daymap_1[$day]] = TRUE;
else
error_log('school_crawl_days_format() got invalid day specifier:'
. ' `' . $day_orig . '\' => `' . $day . '\'');
}
$day_str = '';
foreach ($my_days as $day_val => $junk)
$day_str .= $day_val;
return $day_str;
}
/**
* \brief
* Take a string of day initials and format it.
*
* \param $days_str
* Example input: 'mwf', 'TR'.
* \return
* Same as school_crawl_days_format()
*/
function school_crawl_days_str_format($days_str)
{
$day_initials = array();
for ($i = 0; $i < strlen($days_str); $i ++)
$day_initials[] = $days_str[$i];
return school_crawl_days_format($day_initials);
}
|