Git Product home page Git Product logo

theochrone's Introduction

Theochrone

What is Theochrone ?

Theochrone is a liturgical calendar for the Traditional Rite. You can enter a date, and it gives you the feasts for this date, with their class, liturgical time, colour, and much more. You can also search a feast by keywords. Many other options are available.

Core Features

  • The roman calendar of 1962, accessible by dates or by keywords. A range of dates, or a period (a week or a month, for instance), is also a good option to have a better look.
  • Twelve national propers: Australia, USA, Brazil, Canada, England, France, New Zealand, Poland, Portugal, Scotland, Spain and Wales.
  • Diocesan propers:
    • France
      • Strasburg [NEW]
  • The calendar is connected to a website which provides the texts for the mass and the office of the feast.
  • The Roman martyrology, used in 1962, accessible by date or by keywords.

Interfaces

Web

Website

The website provides you basic tools: search by date, by keywords and for a whole month. The Roman Martyrology is also available. See here : https://theochrone.fr

Widget

The Widget provides very limited infos, but can be a great feature on a website. For an example, see here : https://tradinews.blogspot.fr#theocontainer

Twitter

The twitter interfaces manages a bot sending to every follower of the bot the feasts of the day. Any account can become a bot, even an existing one, but creating a Twitter app is required first.

Theochrone on Twitter

Web Services

Not yet available

We want to create a Rest API to give you a complete control over the raw data. Why is it unaivalable now ? Web Services are really costly in term of resources. We need money to afford better servers. We also haven't got enough time to make it and we need help to create this API. Feel free to contribute.

Graphical User Interface (GUI)

The Graphical User Interface (GUI) provides more infos. It is downloadable and can be used on any platform: Windows, macOS or Linux (even on BSD or some rarer OS).

Command-line (CLI)

The command-line interface (CLI), available with every GUI, is the fastest and the most powerful way to use the Theochrone - but it is a bit rough for computer users not familiar with CLI. For more info, type in a terminal after downloading the program: theochrone --help

Install from GitHub

  1. Clone or download repository.
  2. Open a console/terminal in the folder where you can find your clone/downloaded file.
  3. Unzip it if necessary.
  4. Install python3.5 or greater if it is not yet done. You also need to install the Python Development package. Please consult the documentation for your own OS and architecture on http://python.org/.
  5. If necessary, install programs and libraries required to use Theochrone: GNU Gettext, Qt5. Download them for your own OS and architecture if they are not installed on your computer.
  6. Enter following commands:
python -m pip install -r requirements.txt # in many OSes, you should enter python3 instead of python, or python3.5
python -m pip install -r dev_requirement.txt # only if you want to contribute to the project
msgfmt programme/i18n/fr_FR/LC_MESSAGES/messages.po -o programme/i18n/fr_FR/LC_MESSAGES/messages.mo # if you want to use CLI with french translation. Gettext must be installed before.
python -c "import os; os.mkdir('programme/data')"
python -c "import dataswitcher; dataswitcher.main(propers='all',ordo='1962')"
python -c "import dataswitcher; dataswitcher.xml_to_pkl('en_roman_martyrology');dataswitcher.xml_to_pkl('fr_roman_martyrology_1962')" # if you want to use roman martyrology
lrelease programme/gui/i18n/theochrone.fr.ts # if you want to use the GUI with french translation. Qt5 must be installed first.
lrelease programme/gui/i18n/theochrone.en.ts # if you want to use the GUI with english translation

Note that the version you download from Github may be broken. Feel free to contribute to fix the issue !

Who are we ?

We are two young french catholics. We are neither professional programmers (our jobs have almost nothing to do with programming), neither priests (we two are married), but we love our religion and her liturgy, and we love programming. Many other persons have helped us: do not hesitate to take a look at our THX.md file. You can also join us and contribute : we have HUGE needs in many domains, including programming, translating, and resources.

Contribute

Maybe you can give us a little bit of help ? We need you in these domains:

  • translations, especially in:
    • english
    • spanish
    • italian
    • portuguese

but any language is accepted, even Papuan language or Sindarin !

  • programming, especially the frontend and the GUI
  • researching resources, including:
    • pictures for every feast
    • local calendars (especially diocesan)
    • older versions of the martyrology
    • other latin rites, like Sarum, or the Mozarabic

Do not hesitate to look at the issues !

We also like suggestions. Three important features have been suggested and are now implemented:

  • the widget
  • the Roman Martyrology
  • the export to calendars like Outlook, Google Calendar or iCal

We really listen to your desires and requests, so feel free to suggest or ask us something new.

Languages and Frameworks

If you're interested in some form of collaboration, do not hesitate to have a look at this list. Also, this list may change one day, especially if you put forward something else.

  • Core: Python 3.5
  • Web
    • Backend: Django 1.10
    • Frontend: Bootstrap 3
      • HTML5/CSS3
      • Javascript with jQuery
  • GUI: PyQt5
  • Others:
    • Bash/Zsh

Introducing other language

You want to contribute to Theochrone but you want to use your personal favorite language? You're welcome, but...

  • if it is an interpreted language, like PHP, Perl, Ruby, be sure that it is worth to add a whole new interpreter ; your contribution must be very huge : a new important feature, at least. Indeed, imagine the weight of the program with two or more interpreters...
  • if it is a compiled language, like C, Go, Rust, be sure that your module can be compiled on major architectures and OSes.

Version

Latest version is 0.6.1

New features available in 0.6.1

  • New diocesan proper: Strasburg
  • GUI: export: it is now possible to select which items to export

theochrone's People

Contributors

benoiteirik avatar clsergent avatar paucazou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

theochrone's Issues

Widget: language bug

When the widget is loaded in english, the feasts of today are in french. But if you navigate, it switch to english, and even the feasts of the day are now in english.
Probably due to a bad request from the main page.

Translate the app

Interface priority :

  • command-line (english only);
  • widget;
  • website;
  • desktop;
  • twitter;
  • command-line (every other language).

Languages priority :

  • english;
  • spanish;
  • portuguese;
  • italian;
  • latin;
  • other.

GUI: search week

Clicking on a combobox in search a full week widget makes the research itself, before clicking on OK.

Install from Github: Missing file theochrone/theoXML/fr_roman_martyrology.xml

~/theochrone$ python3 -c "import dataswitcher; dataswitcher.xml_to_pkl('en_roman_martyrology');dataswitcher.xml_to_pkl('fr_roman_martyrology')"
adjutoria.py :: <module> :: 25 :: WARNING :: /data/images.pkl not found. Please run dataswitcher
dataswitcher.py :: <module> :: 259 :: WARNING :: 
    Hello ! I'm the logger. I'm pretty useless,
    but I love to print weird things on the screen.
    If you can read that, that means that the module
    is completely loaded, which is a good thing.
    If you want to silent me, please just type :
    dataswitcher.logger.disabled = True
    Happy pickling !
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/sergent/theochrone/dataswitcher.py", line 232, in xml_to_pkl
    with enc.Preferences(path + 'theoXML/' + name + '.xml','r') as f:
  File "/home/sergent/theochrone/enc.py", line 317, in __init__
    io.FileIO.__init__(self, *args, **kwds)
FileNotFoundError: [Errno 2] No such file or directory: '/home/sergent/theochrone/theoXML/fr_roman_martyrology.xml'

Fete._images : str -> set

Change the type of Fete._images from str to set, in order to allow the program to print images of more than one saint easily.

Add next/previous : web and desktop

This must be done for website and for desktop app.
Add two buttons, next and previous, like in the widget. These buttons must work with:

  • a day;
  • a week; (desktop only)
  • a month;
  • a year ; (desktop only)
  • a arbitrary span ; (desktop only)

Web: contact: error not handled

When sending an email with an invalid adress, no error message is returned to the sender, who can think that his mail has been sent.

Main widget : height 0px;

This css property cause problems in the main website, and probably in others : the widget does not appear at all.

Transfer data from pickle files to sqlite3

About 50% of the loading time of the Theochrone is due to the slowness of Pickle files. We should transfer the whole data into a database.
This should also avoid duplicate keys, which are now many.

Keyword research : local propers : give a bonus

We should give a bonus to feasts matching with tokens if they belong to the proper requested, or if they belong to a proper which is above the proper requested.
Examples:

  • I'm looking for St Theresa in the french proper: the feast which belongs to the french proper must be above the one belonging to the roman proper.
  • Similar research, but with the parisian proper: the feast which belongs to the french proper must be above the one belonging to the universal proper, because the parisian proper is inside the french one.

The bonus should be no more than 1%, else it could skew results.

Rewrite the whole GUI code in C++.

Since GUI was built against PyQt, it could be a good idea to rewrite the code in C++. The size of the program would be a bit lighter.

Faster widget

Due to slowness of the server in HelioHost, we should transform dynamical pages into static ones.
To do that :

  • change /spill/main -> /static/spill/main.htm
  • change /spill/day into every page required for two years with the following name :
    dayYYYY_MM_DD.htm
    Links inside these files must be change, thanks to a future py script.
    To keep compatibility with the code given to clients, we must add something like this in widget.js :
    document.getElementById("theowidget").src = "https://theochrone.ga/static/spill/main.htm";
    A page rule must be created in CloudFlare too, in order to cache these pages.

Jan 19 : no feria

On January 19, the mass of feria is not mentioned in the calendar. Instead, we've got only the two memories: SS Martha and companions, and St Canute.
Probably a problem of degree.

Link in the widget

Link in the widget to the website does not take care of the options, PAL and proper.

Web: home page is a little bit late

In the webapp, the home page (/kalendarium/accueil) should display the results of the day following the UTC. However, it seems to display these results with many hours late, even days sometimes.

UC Browser: widget not visible

On UC Browser, only on desktop mode, the widget cannot be seen.
Note that it is possible that the bug is more an error of UC Browser than of our widget, since other websites on UC Browser, desktop mode, aren't correctly loaded.
Thanks to @BenoitHaraldsson for his help !

Keyword research : no result but no error

Theochrone doesn't return an error if results were found but in Pro Aliquibus Locis when PAL was not requested.
Example :

theochrone -r secours chrétiens # no error returned
theochrone --pal -r secours chrétiens # return Notre Dame Secours des Chrétiens

self._images

In many objects, self._images are list, not strings.

Develop an API

It would be a good idea to develop an API, say with REST. But we need better servers to do this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.