diff options
| -rw-r--r-- | Documentation/index.rst | 1 | ||||
| -rw-r--r-- | Documentation/usage/commands/printvalues.rst | 48 | ||||
| -rw-r--r-- | management/commands/printvalues.py | 45 | 
3 files changed, 94 insertions, 0 deletions
diff --git a/Documentation/index.rst b/Documentation/index.rst index e793dd2..7051b93 100644 --- a/Documentation/index.rst +++ b/Documentation/index.rst @@ -61,6 +61,7 @@ Utilisation de celcatsanitizer     usage/installation     usage/commands/cleancourses     usage/commands/listtimetables +   usage/commands/printvalues     usage/commands/reparse     usage/commands/timetables     usage/versions diff --git a/Documentation/usage/commands/printvalues.rst b/Documentation/usage/commands/printvalues.rst new file mode 100644 index 0000000..7d53d44 --- /dev/null +++ b/Documentation/usage/commands/printvalues.rst @@ -0,0 +1,48 @@ +=============== +``printvalues`` +=============== + +``printvalues`` affiche le contenu brut d’un ou plusieurs cours, sans +chercher à interpréter son contenu ou à l’enregistrer dans la base de +données. + +Utilisation +=========== +.. code:: shell + +    $ ./manage.py printvalues --source id [--limit nb] + +``--source`` permet de spécifier la source depuis laquelle les cours +doivent être récupérés.  ``id`` correspond à l’ID de la source, +trouvable à l’aide de la commande :doc:`listtimetables`. + +``--limit`` permet de limiter le nombre de cours affichés.  ``nb`` +correspond au nombre maximum de cours affichés. + +Format de sortie +================ +:: + +   { +       "backColor": "#7D4F72", +       "clickDisabled": true, +       "doubleClickDisabled": true, +       "end": "2019-01-28T09:45:00", +       "html": "<div style=\"color:White \">(07:45-09:45)<br>COURS/TD<br>ELINF6Q1 - BIOLOGIE<br>L3 INFO s2 CMA<br>U3-307</div>", +       "id": "76330023", +       "moveDisabled": true, +       "resizeDisabled": true, +       "sort": [], +       "start": "2019-01-28T07:45:00", +       "tag": [ +           "celcat", +           "sat_notvalid", +           "1", +           "reg_notmark", +           "ELINF6Q1", +           "7491453" +       ], +       "text": "(07:45-09:45)<br>COURS/TD<br>ELINF6Q1 - BIOLOGIE<br>L3 INFO s2 CMA<br>U3-307", +       "toolTip": "(07:45-09:45)<br>COURS/TD<br>ELINF6Q1 - BIOLOGIE<br>L3 INFO s2 CMA<br>U3-307" +   } +   Done. diff --git a/management/commands/printvalues.py b/management/commands/printvalues.py new file mode 100644 index 0000000..91dd18b --- /dev/null +++ b/management/commands/printvalues.py @@ -0,0 +1,45 @@ +#    Copyright (C) 2019  Alban Gruin +# +#    celcatsanitizer 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. +# +#    celcatsanitizer 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 celcatsanitizer.  If not, see <http://www.gnu.org/licenses/>. + +from django.core.management.base import BaseCommand + +from ...models import Source +from .__parsercommand import ParserCommand + +import json + + +class Command(BaseCommand, ParserCommand): +    help = "List values from courses from a source" + +    def add_arguments(self, parser): +        parser.add_argument("--source", type=int, nargs=1, required=True) +        parser.add_argument("--limit", type=int, nargs=1) + +    def handle(self, *args, **options): +        source = Source.objects.get(pk=options["source"][0]) +        parser = self.get_parser()(source) +        events = [event for month in parser.get_source() for event in month] + +        i = 0 +        limit = len(events) +        if options["limit"] is not None: +            limit = min(options["limit"][0], limit) + +        while i < limit: +            self.stdout.write(json.dumps(events[i], indent=4, sort_keys=True)) +            i += 1 + +        self.stdout.write(self.style.SUCCESS("Done."))  | 
