예제 #1
0
 def create_homework(self, id, _time, name, allow_ext_list, description):
     try:
         int(time.mktime(time.strptime(_time, '%Y-%m-%d %H:%M:%S')))
     except Exception:
         raise AttributeError('`time` should be formed like "%Y-%m-%d %H:%M:%S"')
     self.lock.acquire()
     try:
         res = self.load_homework(id)
         if res is not None: return res
         res = Homework(id, _time, name, allow_ext_list, description)
         self.homework_list.append(res) # 线程安全
     finally:
         self.lock.release()
     return res
예제 #2
0
    def __load_homeworks(self) -> Tuple['Homework']:
        from homework import Homework
        homeworks = []

        url = base_url + '/mod/assign/index.php?id=' + self.id
        soup = BeautifulSoup(
            self.__client.session.get(url).text, 'html.parser')

        week_cells = soup.select('td.c0')

        for week_cell in week_cells:
            cells = week_cell.parent.select('td')

            week = int(week_cell.contents[0].split('주차')[0]) if len(
                week_cell.contents) > 0 else 0

            name = cells[1].select_one('a').contents[0]
            deadline = cells[2].contents[0]
            done = cells[3].contents[0] == '제출 완료'
            score = cells[4].contents[0]

            homeworks.append(Homework(week, name, done, deadline, score))

        self.__homeworks = homeworks
예제 #3
0
 def retrieve_homeworks(self, user, project):
     print ">>> Retrieving homeworks"
     pulls = self.github_instance.get_user(user). \
         get_repo(project).get_pulls()
     for pull in pulls:
         hw = Homework(pull.user.email,
                       pull.user.login,
                       project,
                       pull.created_at,
                       pull.get_commits(),
                       pull.get_files())
         self.homeworks.append(hw)
     regex = r".*challenge-week-[0-9]{1,2}/raw/[0-9a-z]{40}/[^/]+?.md$"
     rx = re.compile(regex)
     for hw in self.homeworks:
         for f in hw.files:
             result = rx.search(f.raw_url)
             if result is not None:
                 hw.ans_urls.append(f.raw_url)
                 response = urllib2.urlopen(f.raw_url)
                 hw.ans_sheets.append(md_to_ans_form(response))
         hw.set_name()
         hw.set_expected_score()
         hw.set_urls()
예제 #4
0
    def test_prime_num_positive(self):
        prim = Homework()

        self.assertEqual(prim.prime_num(13), 'Tak')
예제 #5
0
    def test_val_pesel_negative(self):
        pes = Homework()

        self.assertEqual(pes.val_pesel(12345678912), 'N')
예제 #6
0
    def test_val_pesel_positive(self):
        pes = Homework()

        self.assertEqual(pes.val_pesel(44051401458), 'D')
예제 #7
0
    def test_prime_num_negative(self):
        prim = Homework()

        self.assertEqual(prim.prime_num(6), 'Nie')
예제 #8
0
def main(args):
    set_global_config(Config(True))
    hw = Homework(int(args[1]))
    print(hw.get_num_questions())
    return 0
예제 #9
0
from homework import Homework

app = Flask(__name__)

app.config.from_object('config')

app.add_url_rule('/',
                 view_func=Index.as_view('index'),
                 methods=['GET', 'POST'])

app.add_url_rule('/changelog',
                view_func=Changelog.as_view('changelog'),
                methods=['GET'])

app.add_url_rule('/homework',
                 view_func=Homework.as_view('homework'),
                 methods=['GET', 'POST'])

app.add_url_rule('/search/',
                view_func=results.MainResults.as_view('results'),
                methods=['GET', 'POST'])

app.add_url_rule('/search/<searchQuery>',
                 view_func=results.DirectURLInput.as_view('optionalresults'),
                 methods=['GET', 'POST'])

if __name__ == '__main__':

    app.run(debug=True, host='0.0.0.0')
예제 #10
0
def main(args):
    set_global_config(Config(True))
    hw = Homework(int(args[1]))
    hw.generate_self_grade_form()
    return 0
예제 #11
0
 def __load_all__(self):
     return \
         User.load_array(self.user_filename), \
         Homework.load_array(self.homework_filename), \
         Statu.load_array(self.statu_filename), \
         Judge.load_array(self.judge_filename)