Select Git revision
Brady James Garvin authored
main.py 1.79 KiB
from __future__ import print_function
from sys import stderr
from sqlalchemy.exc import SQLAlchemyError
from movies import MovieDatabase, Movie
from kivy.app import App
__app_package__ = 'edu.unl.cse.soft161.movies'
__app__ = 'Movies'
__version__ = '1.0'
__flags__ = ['--bootstrap=sdl2', '--requirements=python2,kivy,sqlalchemy,mysql_connector', '--permission=INTERNET']
class MoviesApp(App):
def __init__(self, **kwargs):
super(MoviesApp, self).__init__(**kwargs)
url = MovieDatabase.construct_mysql_url('localhost', 3306, 'movies', 'root', 'cse')
self.movie_database = MovieDatabase(url)
self.session = self.movie_database.create_session()
@staticmethod
def _create_movie(session, title, budget, gross_revenue):
movie = Movie(title=title, budget=budget, gross_revenue=gross_revenue)
session.add(movie)
session.commit()
def create_movie(self, title, budget, gross_revenue):
try:
budget = int(budget) * 1000000
gross_revenue = int(gross_revenue) * 1000000
except ValueError as exception:
self.root.ids.message.text = 'Formatting error: {exception}'.format(exception=exception)
return
try:
self._create_movie(self.session, title, budget, gross_revenue)
self.root.ids.message.text = 'Movie added!'
except SQLAlchemyError as exception:
self.session.rollback()
self.root.ids.message.text = 'Database error: {exception}'.format(exception=exception)
if __name__ == "__main__":
try:
app = MoviesApp()
app.run()
except SQLAlchemyError as exception:
print('Initial database connection failed!', file=stderr)
print('Cause: {exception}'.format(exception=exception), file=stderr)
exit(1)