diff --git a/client/setup.py b/client/setup.py index 3ad7022..9e9685c 100644 --- a/client/setup.py +++ b/client/setup.py @@ -1,102 +1,102 @@ -import codecs -import os.path -import pathlib -from setuptools import setup, find_packages - -def read(rel_path): - here = os.path.abspath(os.path.dirname(__file__)) - with codecs.open(os.path.join(here, rel_path), 'r') as fp: - return fp.read() - -def get_version(rel_path): - for line in read(rel_path).splitlines(): - if line.startswith('__version__'): - delim = '"' if '"' in line else "'" - return line.split(delim)[1] - else: - raise RuntimeError("Unable to find version string.") - -here = pathlib.Path(__file__).parent.resolve() - -long_description = (here / 'README.md').read_text(encoding='utf-8') - -setup( - name='upload-tm-records', - # https://www.python.org/dev/peps/pep-0440/ - version=get_version('src/upload_tm_records.py'), - description='Upload your trackmania records to a trackmania-records server!', - long_description=long_description, - long_description_content_type='text/markdown', - url='https://github.com/rsnitsch/trackmania-records', - author='Robert Nitsch', - author_email='mail@robertnitsch.de', - # For a list of valid classifiers, see https://pypi.org/classifiers/ - classifiers=[ - 'Development Status :: 4 - Beta', - 'Environment :: Console', - 'Intended Audience :: End Users/Desktop', - 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', - 'Topic :: Games/Entertainment', - - # Specify the Python versions you support here. In particular, ensure - # that you indicate you support Python 3. These classifiers are *not* - # checked by 'pip install'. See instead 'python_requires' below. - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3 :: Only', - ], - - # This field adds keywords for your project which will appear on the - # project page. What does your project relate to? - # - # Note that this is a list of additional keywords, separated - # by commas, to be used to assist searching for the distribution in a - # larger catalog. - keywords='trackmania, gaming', # Optional - - package_dir={'': 'src'}, - - # You can just specify package directories manually here if your project is - # simple. Or you can use find_packages(). - # - # Alternatively, if you just want to distribute a single Python file, use - # the `py_modules` argument instead as follows, which will expect a file - # called `my_module.py` to exist: - # - py_modules=["upload_tm_records"], - # - #packages=find_packages(where='src'), # Required - - # Specify which Python versions you support. In contrast to the - # 'Programming Language' classifiers above, 'pip install' will check this - # and refuse to install the project if the version does not match. See - # https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires - python_requires='>=3.7, <4', - - # This field lists other packages that your project depends on to run. - # Any package you put here will be installed by pip when your project is - # installed, so they must be valid existing projects. - # - # For an analysis of "install_requires" vs pip's requirements files see: - # https://packaging.python.org/en/latest/requirements.html - install_requires=['requests'], # Optional - - # To provide executable scripts, use entry points in preference to the - # "scripts" keyword. Entry points provide cross-platform support and allow - # `pip` to create the appropriate form of executable for the target - # platform. - # - # For example, the following would provide a command called `sample` which - # executes the function `main` from this package when invoked: - entry_points={ # Optional - 'console_scripts': [ - 'upload-tm-records=upload_tm_records:main', - ], - }, - - project_urls={ # Optional - 'Bug Reports': 'https://github.com/rsnitsch/trackmania-records/issues', - 'Source': 'https://github.com/rsnitsch/trackmania-records', - }, -) +import codecs +import os.path +import pathlib +from setuptools import setup, find_packages + +def read(rel_path): + here = os.path.abspath(os.path.dirname(__file__)) + with codecs.open(os.path.join(here, rel_path), 'r') as fp: + return fp.read() + +def get_version(rel_path): + for line in read(rel_path).splitlines(): + if line.startswith('__version__'): + delim = '"' if '"' in line else "'" + return line.split(delim)[1] + else: + raise RuntimeError("Unable to find version string.") + +here = pathlib.Path(__file__).parent.resolve() + +long_description = (here / 'README.md').read_text(encoding='utf-8') + +setup( + name='upload-tm-records', + # https://www.python.org/dev/peps/pep-0440/ + version=get_version('src/upload_tm_records.py'), + description='Upload your trackmania records to a trackmania-records server!', + long_description=long_description, + long_description_content_type='text/markdown', + url='https://github.com/rsnitsch/trackmania-records', + author='Robert Nitsch', + author_email='mail@robertnitsch.de', + # For a list of valid classifiers, see https://pypi.org/classifiers/ + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Environment :: Console', + 'Intended Audience :: End Users/Desktop', + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + 'Topic :: Games/Entertainment', + + # Specify the Python versions you support here. In particular, ensure + # that you indicate you support Python 3. These classifiers are *not* + # checked by 'pip install'. See instead 'python_requires' below. + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3 :: Only', + ], + + # This field adds keywords for your project which will appear on the + # project page. What does your project relate to? + # + # Note that this is a list of additional keywords, separated + # by commas, to be used to assist searching for the distribution in a + # larger catalog. + keywords='trackmania, gaming', # Optional + + package_dir={'': 'src'}, + + # You can just specify package directories manually here if your project is + # simple. Or you can use find_packages(). + # + # Alternatively, if you just want to distribute a single Python file, use + # the `py_modules` argument instead as follows, which will expect a file + # called `my_module.py` to exist: + # + py_modules=["upload_tm_records"], + # + #packages=find_packages(where='src'), # Required + + # Specify which Python versions you support. In contrast to the + # 'Programming Language' classifiers above, 'pip install' will check this + # and refuse to install the project if the version does not match. See + # https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires + python_requires='>=3.7, <4', + + # This field lists other packages that your project depends on to run. + # Any package you put here will be installed by pip when your project is + # installed, so they must be valid existing projects. + # + # For an analysis of "install_requires" vs pip's requirements files see: + # https://packaging.python.org/en/latest/requirements.html + install_requires=['requests'], # Optional + + # To provide executable scripts, use entry points in preference to the + # "scripts" keyword. Entry points provide cross-platform support and allow + # `pip` to create the appropriate form of executable for the target + # platform. + # + # For example, the following would provide a command called `sample` which + # executes the function `main` from this package when invoked: + entry_points={ # Optional + 'console_scripts': [ + 'upload-tm-records=upload_tm_records:main', + ], + }, + + project_urls={ # Optional + 'Bug Reports': 'https://github.com/rsnitsch/trackmania-records/issues', + 'Source': 'https://github.com/rsnitsch/trackmania-records', + }, +) diff --git a/client/src/upload_tm_records.py b/client/src/upload_tm_records.py index ffa7227..30fc234 100644 --- a/client/src/upload_tm_records.py +++ b/client/src/upload_tm_records.py @@ -8,7 +8,7 @@ import requests -__version__ = '1.0.0b1' +__version__ = '1.0.0' logger = logging.getLogger(__name__) diff --git a/server/html/upload.php b/server/html/upload.php index d5c623b..811b6f1 100644 --- a/server/html/upload.php +++ b/server/html/upload.php @@ -1,69 +1,69 @@ -setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - - $commands = ['CREATE TABLE IF NOT EXISTS records ( - game TEXT NOT NULL, - user TEXT NOT NULL, - track TEXT NOT NULL, - best INTEGER NOT NULL, - PRIMARY KEY (game, user, track) - )']; - - foreach ($commands as $command) { - $pdo->exec($command); - } - - foreach ($records as $record) { - //print_r($record); - - $user = $record['user']; - $track = $record['track']; - $best = intval($record['best']); - - // Delete previous record. - $st = $pdo->prepare('DELETE FROM records WHERE user = :user AND track = :track'); - $st->bindParam(':user', $user, PDO::PARAM_STR); - $st->bindParam(':track', $track, PDO::PARAM_STR); - $st->execute(); - - // Add new record. - $st = $pdo->prepare("INSERT INTO records (game, user, track, best) VALUES ('Trackmania 2020', :user, :track, :best)"); - $st->bindParam(':user', $user, PDO::PARAM_STR); - $st->bindParam(':track', $track, PDO::PARAM_STR); - $st->bindParam(':best', $best, PDO::PARAM_INT); - $st->execute(); - } - - echo "Success!"; - } catch (PDOException $e) { - http_response_code(500); - die('Database error: '.$e->getMessage()); - } +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $commands = ['CREATE TABLE IF NOT EXISTS records ( + game TEXT NOT NULL, + user TEXT NOT NULL, + track TEXT NOT NULL, + best INTEGER NOT NULL, + PRIMARY KEY (game, user, track) + )']; + + foreach ($commands as $command) { + $pdo->exec($command); + } + + foreach ($records as $record) { + //print_r($record); + + $user = $record['user']; + $track = $record['track']; + $best = intval($record['best']); + + // Delete previous record. + $st = $pdo->prepare('DELETE FROM records WHERE user = :user AND track = :track'); + $st->bindParam(':user', $user, PDO::PARAM_STR); + $st->bindParam(':track', $track, PDO::PARAM_STR); + $st->execute(); + + // Add new record. + $st = $pdo->prepare("INSERT INTO records (game, user, track, best) VALUES ('Trackmania 2020', :user, :track, :best)"); + $st->bindParam(':user', $user, PDO::PARAM_STR); + $st->bindParam(':track', $track, PDO::PARAM_STR); + $st->bindParam(':best', $best, PDO::PARAM_INT); + $st->execute(); + } + + echo "Success!"; + } catch (PDOException $e) { + http_response_code(500); + die('Database error: '.$e->getMessage()); + }