theycallmemac/dcurooms

View on GitHub
scripts/room_booking.py

Summary

Maintainability
A
35 mins
Test Coverage
import sys
from mechanicalsoup import StatefulBrowser
from requests import get

if sys.version_info[0] < 3:
    from cookielib import LWPCookieJar
else:
    from http.cookiejar import LWPCookieJar

__author__ = "theycallmemac"
__version__ = '2.0.0'
__copyright__ = 'Copyright (c) 2018 theycallmemac'
__license__ = 'GPL-3.0'


class RoomBooking(object):
    arguments = []
    email = ""
    number = ""
    name = ""
    society = ""

    def __init__(self, email, number, name, society, arguments):
        self.arguments = arguments
        self.email = email
        self.number = number
        self.name = name
        self.society = society

    def fill(self):
        browser = StatefulBrowser()
        cookie_jar = LWPCookieJar()
        browser.set_cookiejar(cookie_jar)
        room, date, start, end = self.arguments[0], self.arguments[1].split(
            "/"), self.arguments[2][:2] + ":" + \
            self.arguments[2][2:], self.arguments[3][:2] + \
            ":" + self.arguments[3][2:]
        day, month, year = date[0], date[1], date[2]
        browser.open("http://www.dcu.ie/registry/booking.shtml", verify=False)
        browser.select_form(nr=4)
        browser["submitted[name_of_club_society]"] = self.society
        browser["submitted[name_of_person_making_booking]"] = self.name
        browser["submitted[contact_telephone_number]"] = self.number
        browser["submitted[date_room_required][day]"] = day
        browser["submitted[date_room_required][month]"] = month
        browser["submitted[date_room_required][year]"] = year
        browser["submitted[room_capacity]"] = "18"
        browser["submitted[description_of_event]"] = "Meeting"
        browser["submitted[hours_requiredfrom_to]"] = start + " - " + end
        browser["submitted[building_room_reference]"] = room
        browser["submitted[email_address]"] = self.email
        return browser

    def submit(self, form):
        request = form.request
        response = form.submit_selected()
        return "Form submitted successfully."