Planning Center Online Plugin Beta Release

jpkjpk
edited July 27 in Development
Hi, all,

I have been working on a Planning Center Online plugin for OpenLP 2.4.6.  It's now ready to see if others can use it.

You can download the 0.1 beta release at:

Source Code is available at:  https://github.com/ghjpk/planningcenter

If you use Planning Center Online and want to try OpenLP with it, give this a whirl and let me know if it works for you.  I've been using it myself for the past 2 weeks.

Best Regards,
John Kirkland

Release Notes are below:

This is the first beta release of the Planning Center Online plugin for OpenLP.

Installation (Windows/Linux):

  1. Unzip the planningcenter.zip file into your Planning Center plugins folder, keeping the planningcenter folder intact.
  2. Start OpenLP
  3. Verify and activate the planningcenter plugin in the Settings->Manage Plugins menu.
Installation (MacOS)
  1. Right click on OpenLP in the Applications Folder and select "Show Package Contents"
  2. Unzip the planningcenter.zip file inside of the OpenLP application at Contents/MacOS/plugins, keeping the planningcenter folder intact.

Usage:

  1. Select the File->Import->Planning Center Service menu.
  2. Setup your authentication keys, following the directions in the GUI.
  3. Import Services

Recommended Settings:

  • Turn off the "Import missing songs from service files" configuration in the Songs plugin. You will get strange results if you (a) import a song, (b). change the song lyrics on Planning Center, (c) import the song again, (d) edit the song. You will display the correct lyrics in the Service Manager but if you try and "edit" the song from the ServiceManager, then you will be editing the original lyrics, not the updated ones. You are better off depending on PCO as your song database if you use this plugin.

Currently Supported Features:

  1. Importing Lyrics from Planning Center songs that are added to a service (no verse order or other media support currently)
  2. Importing slides as Custom Slides. Note: the V2 API does not have support for getting the content added to slides on Planning Center. While PCO is discussing adding this back into the V2 API, they do not intend to continue to have support for editing these slides in the Services Web GUI sometime in 2019. So... this plugin just replicates the titles of any slides onto a single-page custom slide.
  3. Updating Service. This updates the current service in OpenLP with a new copy from Planning Center Online, keeping any edits you've made since you Imported it earlier. The use case here is that you are updating Custom Slides while the band is off working on rehearsals. After rehearsals, you can use the "update" feature to pull in any lyric or song-order updates without overwriting your custom slide updates. Note: if a song or custom slide is removed from Planning Center, it will also be removed from OpenLP, even if you have updated it.

Comments

  • As also mentioned in a different thread I managed to convince our build system to create a windows test build that should include the PCO plugin. I have not tested it myself since I don't have a windows PC, so feel free to test.
    Get it here: https://ci.appveyor.com/project/OpenLP/dev/build/OpenLP-win-ci-b638/artifacts
    Note that this is not a supported build!!!
  • And... now for the 0.2 Release of the Planning Center Online Plugin for OpenLP:  https://github.com/ghjpk/planningcenter/releases

    The previous 0.1 release was based off of a standalone utility that I wrote that reverse engineered the json/xml formats in the OpenLP saved service files and then mimicked the actions of loading these into a new service.

    This 0.2 release builds upon that code and knowledge but incorporates OpenLP classes and documentation styles into the classes/methods.

    Features:

    • Changed Plan List Dates to include 10 more recent (past) and 10 future (including today).
    • Added a feature called "airplane mode" that lets me do fake queries against the Planning Center API while I'm doing development on airplanes.

    Internal Changes:

    • Refactored on_test_credentials_button_clicked to move the lower-level api calls into the api
    • Migrated all code to OpenLP SongImport,Song,and CustomSlide Classes.
    • Created CustomImport library file
    • Inline class/module/function documentation updates.
    • Removed airplane mode directory from lib



  • edited July 26

    Installation Instructions (Windows/Linux):Unzip the planningcenter.zip file into your Planning Center plugins folder, keeping the planningcenter folder intact.

    OK so I have unzipped it into share/openlp/plugins and checked Linux permissions, but its not available as in, not showing in plugins. Any ideas?


    Regards, Alistair



  • jpkjpk
    edited July 26
    Hi, Alistair,

    A few questions:

    1.  Which version of the plugin did you use?  The newest is 0.2.1 available from https://github.com/ghjpk/planningcenter/releases (Note: this would not cause the issue you are seeing... just want to make sure you downloaded the newest release.)
    2.  When you look inside share/openlp/plugins, do you see other OpenLP plugins in that same location, like the following:  alerts  bibles  custom  images  media  presentations remotes  songs  songusage  (this question is to double confirm that this is the correct directory).
    3.  When you navigate to the share/openlp/plugins/planningcenter directory and do a "ls", what files/directories do you see?  You should see at least forms & lib directories and a file: planningcenterplugin.py.  If you see a planningcenter directory instead, then you have the planningcenter directories doubled up, meaning you have planningcenter/planningcenter/planningcenterplugin.py, when it should just be planningcenter/planningcenterplugin.py (this is actually my current guess as to what might be occurring).
    4.  What version of OpenLP are you using?  This was developed with and only tested with 2.4.6.
    5.  What version of Linux are you using?  You don't need to match my version, but I am using it with Ubuntu 18.04 LTS.  You can see your version/distribution by running "lsb_release -a" on your system.

    Best Regards,
    John






  • Hi John. I had wondered why I had to create a plugins directory. Default under Linux/Elementary is eg //home/alistair/.local/share/openlp and all the plugins are within that directory not under a plugins directory
    However, when I move yours and another custom plugin to the openlp directory, after reopening openlp, these new plugins are still not visible.
    OpenLP 2.4, latest Elementary:
    Description:    elementary OS 0.4.1 Loki, Release:    0.4.1, Codename:    loki
    Here is data directory, complete with all active plugins



    Inside /planningcentre:

  • I see now.  That's not actually the plugins directory.  That is the local data storage directory for the plugins, but not where the source code is stored for the plugins.

    You are looking for the directory where the plugins source code resides.  On my machine it is here:  /usr/share/openlp/openlp/plugins

    You'll know you are in the correct location if you look in the songs directory and see something like this (with ls -F):
    forms/  __init__.py  lib/  __pycache__/  songsplugin.py

    -John



  • edited July 26
    Brilliant, visible now. Will advise later. BTW did you try Olp-yt-master?? I have that now in correct plugin directory but that isnt visible. Pretty sure the Olp-yt needs to be added as a formatting tag,  rather than a plugin as it hasnt got plugin structure.


  • No, I haven't tried olp-yt.  Let me know how the planningcenter plugin works out for you.
  • tgctgc
    edited August 2
    For anyone interested I created an OpenLP build for windows with the latest changes from the Planning Center Online plugin: https://ci.appveyor.com/project/OpenLP/dev/build/OpenLP-win-ci-b658
    Feedback for these builds is most welcome.
  • Thanks TGC for awesome job.
    I've just tried your plugin and it has one problem with the date format. Could you advise?
    When I go to "Import" I see this error message:

    Traceback (most recent call last):

    File "C:\Program Files (x86)\OpenLP\plugins\planningcenter\forms\planningcenterform.py", line 216, in on_service_type_combobox_changed

    plan_datetime = datetime.strptime(plan['attributes']['dates'],'%B %d, %Y')

    File "_strptime.py", line 507, in _strptime_datetime

    File "_strptime.py", line 344, in _strptime

    ValueError: time data '9 December 2018' does not match format '%B %d, %Y'

  • Hi!
    Actually it was @jpk who did all the hard work, I just bundled it.
    But yes, it seems there is a problem with date formats. I'll have a look when time allows.
  • Hi, fkrol,
    I used the date format in the code that my planning center sends me. Your date string is different than mine.
    To fix this, I’ll either need to use a library that automatically parses arbitrary date strings or find a date string setting in the planning center API.
    In which country are you located? I want to see if I can get my planningcenter to behave like yours.
    Thanks,
    -John
  • I ended up finding a different date value in the API that is always the same regardless of the user's time/locale configuration.  The fix is available in the 0.4 release of the planningcenter plugin at:  https://github.com/ghjpk/planningcenter/releases

    Perhaps @tgc will create a new Windows build, or you can download the plugin directly and replace the one in your current package.
  • I'll try to get a build done within the next few days.
    I don't think copying in the new code will work on Windows - unless you have a full development setup.
Sign In or Register to comment.