Wilm0r / giggity

Generic Android conference schedule viewer
https://gaa.st/giggity
GNU General Public License v2.0
101 stars 105 forks source link

Collaborate with other sites/apps on more input formats ? #33

Open mmuman opened 6 years ago

mmuman commented 6 years ago

Following #29 , I just found MozFest that uses yet another thing for their program, which uses some custom JSON format.

Last summer I attended a workshop at RMLL where we discussed events schedule curation for websites like radar.squat.net. I mentioned Giggity on the notes we took.

I think we should collaborate instead of reimplementing the same parsers N times. It's probably simpler to add events to some website supporting known formats and point Giggity to it when the event website doesn't provide a suitable format.

Wilm0r commented 6 years ago

So, the recent wave of ICS-formatted submissions has me thinking about this as well. I've never really wanted [XI]CS to become a first-class citizen in Giggity because it's very poor on metadata and Giggity can only apply some heuristics to try to make it look nice.

(Honestly that problem in some ways even exists with Pentabarf - or really mostly in the way the long descriptions are written. Some schedules use HTML there, some use Markdown of some sort, but you just have to make guesses on what it is, it's not like there's a MIME-type or something - remember the days of MSIE4 rendering HTML as HTML even if the MIME-type was wrong, as a gesture of helpfulness? :-/)

Anyway, I wonder whether we'd be better off having separate code that could get some help on the heuristics (as-in we'll see how that file combined 3 different things into talk titles and supply a regex or something to pull it apart), take in more than just ICS/XCS, and emit a more digested file for Giggity to use?

Note that this thing kind of exists already in fact! https://github.com/Wilm0r/giggity/tree/master/tools/dance_valley has it, and right now it's a generator for the old Giggity-native format, though I haven't used that in ages.

The structure there is just class Schedule(GiggityObject) which you populate by doing whatever terriblesness needed to parse your input, then invoke its xml() function to serialise. And yeah, the code is messy, also most of it is 9y old. :-D

Wilm0r commented 6 years ago

https://github.com/Wilm0r/giggity/blob/master/tools/gen-xml.py is now updated to A) read iCal and B) generate Frab.

It's rather incomplete BTW, but completing it hopefully shouldn't be too much work. And then heuristics like getting speaker names may find a better place in there.

Though as I started writing it, I kinda lost motivation to really finish this as it's going to be maintenance hell - I really don't fancy the idea of "hosting" these files on behalf of conferences, dealing with updates as they make them, etc...

mmuman commented 6 years ago

Oh, python, that I can test without Android SDK nightmare :-) I'll try to have a look. Yes, it'd be better to have them host their own stuff.

For LibrePlanet the code of their tool is on github, so it can probably be patched to generate something else than ICS.

Zverik commented 4 years ago

Just for the note, I'm writing schedule-convert script that can convert anything to frab xml and icalendar formats and merge schedules. Already used it for 5 conferences — you can see autogenerated files at sotm.osmz.ru.

I'd prefer a single interchange format for apps, and tools for converting anything to that format. And Frab XML is de-facto that standard by now.

Wilm0r commented 1 year ago

(Digging through old bugs...)

Ooh I love schedule-convert! Maybe it could even run on AppEngine or something somewhere for auto conversions where needed. @mmuman Have you come across any of those Sessionize formatted schedules?

mmuman commented 1 year ago

Doesn't ring a bell, but maybe I just saw it without knowing the name.