wilm0r / giggity Goto Github PK
View Code? Open in Web Editor NEWGeneric Android conference schedule viewer
Home Page: https://gaa.st/giggity
License: GNU General Public License v2.0
Generic Android conference schedule viewer
Home Page: https://gaa.st/giggity
License: GNU General Public License v2.0
If you select a conference that is currently in progress, giggity seems to always jump to the first day of the conference.
Preferred behavior would be to jump to the current day.
I'm working out what to attempt to see at FOSDEM. For multitrack cons, giggity has been my favorite tool for years. Block schedule with hiding FTW!
But: Giggity started failing today with
java.lang.SecurityException: !@too many alarms (500)
I found an old discussion at stackoverflow: java.lang.SecurityException: !@Too many alarms (500) registered from pid 10790 uid 10206. If this has the same cause, this only happens on Samsung phones, which is what I have :/ .
Especially annoying:
"We've found that devices where this problem occurs will be in a broken state (filled with PendingIntents?) until they are restarted or the app is reinstalled."
I have tested on my own Samsung: restarting the entire device is no longer a working workaround, I'm a bit reluctant to reinstall since I assume this will erase all the selections I've already made.
In some of my previously created Pentabarf files I have very simple start and end time. For example for "Bibliothekartag 2020" which is also in the official menu of giggity I simply choose
<start>2020-05-26</start>
<end>2020-05-29</end>
That did work for giggity until recently. Now, I see some error about DateTimeParserException
. I used the Pentabarf python library to create this, cf. https://github.com/UB-Mannheim/bibtag-scheduler/blob/master/schedule.py#L19-L20 and therefore I except this is possibly a newly introduce bug in giggity.
Thank you for this great tool.
I am attending DebConf17 and noticed when looking at "Now and then" some events aren't in the right order.
For example for today I see:
Now:
13:00 - 14:00 Lunch
Next:
15:30-15:50 - An apt Talk
17:00-17:50 Building a PKI and PGP Clean room
16:20-1700 Coffee break
14:30-15:15 Bits from the DPL
15:30-16:20 The past, present and future of Debian Games
It should actually show:
Next:
14:30-15:15 Bits from the DPL
15:30-15:50 - An apt Talk
15:30-16:20 The past, present and future of Debian Games
16:20-1700 Coffee break
17:00-17:50 Building a PKI and PGP Clean room
Perhaps the ability to group by room / track would also be useful here.
I want to try to create an event calendar for giggity for a boardgame con I'm going to attend. What's the easiest way to create any of the formats that giggity reads? I mean the file whose url will go into the top level url
field of the JSON file for the event.
I'm looking for a broad description in steps or pointers. Assume I know programming and am prepared to do a little work for this.
Hello! I'm having some trouble with an event that last over 24 hours. I cannot set the <duration>
value over 24 (Network I/O problem: parse error. Invalid int value for HourOfDay).
How can I achieve this?
I tried to split an event in 2 days like this:
<day date="2019-11-15">
<room name="ABC">
<title>Eventname1</title>
<event id="5f76dc3808c8677ca3515213db89291ecaca9b2dbf3e6">
<start>10:00</start>
<duration>14:00</duration>
</event>
</room>
</day>
<day date="2019-11-16">
<room name="ABC">
<title>Eventname1</title>
<event id="5f76dc3808c8677ca3515213db89291ecaca9b2dbf3e6">
<start>00:00</start>
<duration>16:00</duration>
</event>
</room>
</day>
But the second event doesn't show up.
I've found out that an event that starts before 06:00 is not recognized and doesn't show up. For example:
<day date="2019-11-15">
<room name="ABC">
<title>Eventname1</title>
<event id="5f76dc3808c8677ca3515213db89291ecaca9b2dbf3e6">
<start>05:00</start>
<duration>04:00</duration>
</event>
</room>
</day>
doesn't work, but:
<day date="2019-11-15">
<room name="ABC">
<title>Eventname1</title>
<event id="5f76dc3808c8677ca3515213db89291ecaca9b2dbf3e6">
<start>06:00</start>
<duration>04:00</duration>
</event>
</room>
</day>
is working.
Why is that? Any suggestions about this issue?
Thank you so much!
I would like the ability to transfer the whole schedule to the smartphone using QR code only. It can be useful for places where the agenda is not available over the internet (enterprise environment).
For example you can take frab scehdule.xml , gzip -9 | qr
, create a qr code, and then be able to scan this directly into Giggity. Example QR code:
If I understand this code correctly, the barcode reader can't do that, but it is seems easy to add.
It is IMO useful to have the events listed by time also for planning your attendance of a conference ahead. Such a list is already done by the "Now and Next" display. However, this is not available on non-conference days.
Can this view of the events by time been expanded such that it becomes also available on days before the conference (and afterwards)?
I would envision to still have the message "No events today" but then below an option to choose a specific conference day and then see all events at that day sort by the time.
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.
Anyone know how could have a web version/view?
How to view the XML with some mobile web view.
I can't install .apk or anything else on my phone.
I tried to write a JSON file for OAI11 conference by following the example in the README, see https://gist.github.com/zuphilip/ee6d7db9838dad0ce3495c1f0909d3ab (copied the raw link into giggity app). However, my file is not working. An JSON error No value for name
occurs. What is the problem with this file and how can it be fixed?
Giggity 1.3.2 installed from FDroid.
I'm trying to load http://osseu18.sched.com/all.ics by adding it over the +
button, but when I do this, I only get an error message saying "Load Error: Network I/O problem: java.io.IOException: Download error: no-cache".
A short curl shows that the HTTP URL is only redirect to the HTTPS version:
$ curl -I http://osseu18.sched.com/all.ics
HTTP/1.1 302 Found
Cache-Control: no-cache
Content-length: 0
Location: https://osseu18.sched.com/all.ics
(note the Cache-Control: no-cache
which gets reproduced in the error message).
When I try loading the HTTPS version instead in Giggity, everything works fine, so I guess only the redirection feature is missing, or the Cache-Control
header is confusing the download logic.
Please add the track name such as Python, Mozilla etc. to the location on the left. This allows the user to find more quickly what he or she is looking for.
Some events have parallel calendars for different "tracks". For example, at IETF105 there is the calendar of official events, and a parallel calendar of unofficial side meetings.
It Would Be Nice If there was a way to have giggity display both in overlay (just displaying events from both in a single view, with the event details indicating the source when there are multiple calendars).
A first iteration may not even need capabilities for creating such a composite-calendar event from GUI input, just having multiple calendars from a JSON would be a good starting point.
The Perl Conference is happening now in Amsterdam. Like most Perl conferences the website is based on Act and has ICS exports.
the readme inlcudes (only) a link to http://gaa.st/ which seems to be dead
It would be nice if the Android version would have an option to reload the data without having to restart the app. I'd have it open over the entire conference without closing it, and so an option to force it to reload the data would be a great enhancement. Currently the only way to get the latest schedule is to remove the app from the task list and then start it again.
Hi,
I imported a custom .ics file from a link, then noticed the X-WR-CALNAME entry was wrong (as in, the title of the entire file).
I can refresh the ics all I want, it doesn't change the title of the thing anymore. (Also, as others have noted, I can't delete my own imported .ics anymore, which I would like to do, for older events I added)
Hi, I'd like to use Giggity for a conference I am organizing and one of the issues is that I would like to be able to use images in the descriptions of talks (the abstract of the talk itself would be followed by the speaker's bio and picture). Some HTML tags (links, lists, strong,
etc.) are supported, so I figured I'd try with img
, but the result is only a blue square, whether I link to an external image or I put it base64 encoded in the tag. There seems to be no CSS support either.
Is this a bug or a feature? Is there a way to display images in the descriptions?
The RIOT summit is coming up, and its calendar managed at https://calendar.google.com/calendar/ical/q8kbk375j3oh1ei3pt3s8g22hs%40group.calendar.google.com/public/basic.ics looks like it'd be suitable for use with giggity.
When attempting to load said URI (or its http version instead of https) by QR code, I get:
Loading schedule data...
Network I/O Problem: java.net.MalformedURLException: no protocol: https://calendar.google.com/calendar/ical/q8kbk375j3oh1ei3pt3s8g22hs%40group.calendar.google.com/public/basic.ics
Accessing the same resource per curl
via termux (or via Firefox, which offers it for download) works, so it shouldn't be a network problem.
I see now at least 2 events in beginning of Dec... would be nice if you could push soon a new version (which just includes the latest events).
( I think it would at least appear automatic in f-droid, not sure about g-play )
thanks for considering.
Also, long-therm i would suggest to split the "app" and the "data" into 2 repos.
for the data-repo, there could run some custom .travis checks for to prove pull-requests. (are the urls accessible, is the .ics file a valid one, check the format (json-schema-validation), ... )
You can add Screenshots for F-Droid, too, if you want.
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/
Thank you for Giggity on F-Droid!
I have two wishes:
When an ICS file is added via a menu JSON that has a title, it is initially shown in the list with the given title. When the event is later loaded, some calendar files (at least the IETF one) later show their calendar URI in the list instead of the given name.
My impression is that this affects calendars that don't have a X-WR-CALDESC/X-WR-CALNAME set, and that the fallback sequence is "X-WR-* / URI / JSON-name", while it should better be "X-WR-* / JSON-name / URI" or even "JSON-name / X-WR-* / URI".
FOSSASIA's open event JSON format contains information about rooms, icon and other web links which has to be added separately for the formats like pentabarf along with sessions.
I made the changes https://github.com/heysadboy/giggity .
App could be tested for this API end point https://open-event-dev.herokuapp.com/api/v1/events/266?include=sessions,microlocations
See the endpoints's response here http://jsonviewer.stack.hu/#http://open-event-dev.herokuapp.com/api/v1/events/266?include=sessions,microlocations .
I have modified app so it automatically fetches the information of locations, sessions and icon's link from this endpoint itself.
Would it be possible to save the conference hashtag and then use it for sharing via twitter? However, currently these text is using the whole abstract which will almost certainly be too many characters. Thus, one would also need to restrict this. Any hint where this is handled in the code?
If you look at events on the FOSDEM schedule (provided from the built-in list of conferences) for example, speaker names are given at the top of the events. So the UI is obviously able to show speaker information.
However, if you import an iCal file by it's URL it doesn't show given attendees as speakers. To reproduce use FOSDEM's iCal file for example: https://fosdem.org/2018/schedule/ical
Hi,
I create a pentabarf xml response to show the calendar of our conference (you can see it here, but I'm not able to see in giggity the event elements which type
different from talk (we have poster and workshop).
Is it possible to use different values for type
?
On events with volatile schedules, I run with "Always reload schedules", but that takes some time in the morning, and makes the cached schedule inaccessible if network errors occur.
Could the schedule update process be moved into the background (open, it shows the cached schedule right away and refreshes when updates are parsed), and made to keep using the last good version in presence of network errors?
Thanks for this great app!
I've been experimenting with how to make a good .ics for giggity and the menu is now full of garbage. I'd like for an easy way to get rid of them (like a delete-action in the click-and-hold popup menu), but I'd settle for a workaround doable via termux or similar.
In FOSDEM Companion, there's a way to only show the tracks of a single day. It's very useful when you want to make your plans for the next day, for instance.
I've been reported a java.lang.NullPointerException error when loading the JRES 2022 schedule, on multiple devices. Oddly it worked fine when I tested it on the older Giggity on my Android 4 tablet 🤷
Hello
I've been seeing an issue when trying to parse the GUADEC 2017 and 2016 schedule with Giggity. The schedule was failing to load with a NullPointerException. Here's the full log from adb logcat
:
07-04 17:09:53.453 E/Schedule.loadXml( 5500): XML parse exception: java.lang.NullPointerException
07-04 17:09:53.453 W/System.err( 5500): java.lang.NullPointerException
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Giggity.fuzzyStarsWith(Giggity.java:191)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule$PentabarfParser.endElement(Schedule.java:1018)
07-04 17:09:53.463 W/System.err( 5500): at org.apache.harmony.xml.ExpatParser.endElement(ExpatParser.java:156)
07-04 17:09:53.463 W/System.err( 5500): at org.apache.harmony.xml.ExpatParser.appendChars(Native Method)
07-04 17:09:53.463 W/System.err( 5500): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:497)
07-04 17:09:53.463 W/System.err( 5500): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:484)
07-04 17:09:53.463 W/System.err( 5500): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:309)
07-04 17:09:53.463 W/System.err( 5500): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:267)
07-04 17:09:53.463 W/System.err( 5500): at android.util.Xml.parse(Xml.java:71)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule.loadXml(Schedule.java:362)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule.loadPentabarf(Schedule.java:357)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule.loadSchedule(Schedule.java:306)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Giggity.getSchedule(Giggity.java:116)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.ScheduleViewActivity$6.run(ScheduleViewActivity.java:339)
07-04 17:09:53.463 W/System.err( 5500): XML parsing problem: java.lang.NullPointerException
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule.loadXml(Schedule.java:367)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule.loadPentabarf(Schedule.java:357)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Schedule.loadSchedule(Schedule.java:306)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.Giggity.getSchedule(Giggity.java:116)
07-04 17:09:53.463 W/System.err( 5500): at net.gaast.giggity.ScheduleViewActivity$6.run(ScheduleViewActivity.java:339)
The problem seems to be an assumption that the <description> tag exists and contains text, here: https://github.com/Wilm0r/giggity/blob/master/app/src/main/java/net/gaast/giggity/Schedule.java#L1018
I think I can work around the issue by avoiding <abstract> and just providing <description>, but it would be good to avoid the error. You can reproduce the problem by loading the GUADEC 2016 schedule in Giggity.
The mentioned URL of the website gaa.st/giggity does not resolve anymore. Maybe you want to give directly the URL https://wilmer.gaa.st/main.php/giggity.html or renew the redirect.
Trying to load the Paris Web 2017 ICS takes a lot of time, then :
"Schedule appears to be empty"
Some talks might or might not be recorded, it would be very handy for planning a conference with the app if that information was easily available. It seems there was no taken care of tags/markup for that purpose and thus the only but less user friendly (vs cam or stroken through cam icon) variant would be to add that to the description.
example: GPN18 has tagging for “no recording/streaming”
<recording>
<license></license>
<optout>false</optout>
</recording>
Please, add the F-Droid bade in the README.md by adding the following lines:
<a href="https://f-droid.org/app/net.gaast.giggity">
<img src="https://f-droid.org/badge/get-it-on.png"
alt="Get it on F-Droid" height="80">
</a>
Possibly, also add this to https://wilmer.gaa.st/main.php/giggity.html
The iCalendar standard has provision for a GEO property on events, although it doesn't seem to be usable in most clients, cf. the ticket for NextCloud, and Thunderbird tickets 583569, 1370160.
It could be interesting to use those when available to save the work of adding them to the JSON.
Comparing giggity to all those conference apps I see on colleagues' phones, the only benefit they give is having a floor plan accessible.
Could we come up with a way in which organizers can annotate the rooms in their ICS files with floor plans, and if it is only a link that opens in the browser?
Suggestion: LOCATION:Balmoral
could be annotated as LOCATION;ALTREP="https://datatracker.ietf.org/meeting/101/floor-plan?room=balmoral:Balmoral"
.
Some conferences started to use https://sched.com/ for their program website, e.g. https://oat21.sched.com/?iframe=no . They provide also a ICS file which then can be used in giggity as well, e.g. https://oat21.sched.com/all.ics . However, this approach has some drawbacks:
Would a direct support for Sched conferences in giggity be possible? I would assume that
+all.ics
and create a giggity schedule from thatMy feeling is, that most of these is maybe easy to build with the things which are already coded here. However, I don't know the codebase and I am not experience to do anything with Java.
Could this suggested feature become part of giggity?
During a conference one wants to meet with some person(s) besides the official programm. Morevoer, it is possible that there is something like an exhibision of companies and attendees will make appointments with some of them. For these use cases, it would be interesting to have a new feature, which makes it possible to add such personal meetings besides the official programm.
If this would be possible, then the different views should include such personal meetings and they should also taken into consideration when something new will overlapp with the things already saved.
When a conference time zone is not the local one (as has become typical in the last year for reasons), event times and even the "current time" indication of the block schedule become inaccurate.
For an example, load https://datatracker.ietf.org/meeting/111/agenda.ics. Right now, the block schedule indicates that "dispatch" starts at 12:00 (which is kind of correct -- Los Angeles time), but it also displays the current time as well into dispatch (13:30), which is inconsistent with the calendar showing LA time.
As far as I can read iCalendar files, the data appears to be correct; the LA time zone is defined at the top with appropriate tzoffsets, and all DTSTART/DTEND are given with with the appropriate TZID and then in the appropriate time. Example:
DTSTART;TZID=America/Los_Angeles:20210726T120000
DTEND;TZID=America/Los_Angeles:20210726T140000
For a simple enhancement, it'd already help if the current time indication were fixed (so that when opening the app, you see which slots are on right now); for full time zone support I'm afraid this might need some GUI to select whether a conference is shown in its time zone (useful for planning ahead while you're at home before you go there) or in the device's local time zone (useful for attending remotely).
With SotM 2020 (XML) using giggity I recognized, that reminders and program is not in local timezone but UTC. It would be nice if the local timezone (of the android device) would be used, but not that annoying. It's more annoying that I (currently in UTC+2) get the reminders two hours early. It would be nice if giggity could handle timezones properly.
The XML looks correct:
…
<day index="1" date="2020-07-04" start="2020-07-04T10:00:00Z" end="2020-07-04T22:32:00Z">
<room name="Track 1">
<event guid="66470e9c-d19d-5670-9918-0248be67c02d" id="5028">
<date>2020-07-04T10:00:00Z</date>
<start>10:00</start>
<duration>00:20</duration>
<room>Track 1</room>
<slug>sotm2020-5028-opening</slug>
<url>https://pretalx.com/sotm2020/talk/AXAUHX/</url>
<recording>
<license></license>
<optout>false</optout>
</recording>
<title>Opening</title>
<subtitle></subtitle>
<track>OSM Basics</track>
<type>Talk</type>
<language>en</language>
<abstract>Welcome to SotM 2020!</abstract>
<description>Welcome to SotM 2020!
Some words about how the virtual SotM will run.</description>
<logo></logo>
<persons>
<person id="2297">SotM Working Group</person>
</persons>
<links/>
<attachments/>
</event>
…
While 20a6ff5 was a quick fix, I think it may be worthwhile to have the option of switching the axis around in the block view to present the tent names as a header along the top with time running downwards, eg the way the LCA schedule is formatted on their website
I think this would also give better spacing for the titles of individual events to be displayed more clearly.
When scanning the QR code of https://events.ccc.de/congress/2017/Fahrplan/qrcode.html , I got "Fehler beim Laden".
Corresponding activities to be improved.
@Wilm0r I use this link to add our FOSSASIA data in your app. We have other data too like images and we look up to add that support to in Giggity app, please review this.
It would be great if you could also add FOSSASIA 2016 in your app, I mailed you the data, if not through pull request for further testing of UI on our data. Is there any changes required to be made except in menu.json for our conference to be reflected in app, I wonder.
Fortunately I'm running a phone with an AMOLED display. Many apps have a power saving black based theme.
Might it be possible to implement theming in Giggity or use the devices default colors from themes like from Substratum?
I've written a longer history on this elsewhere already I think but forgot where, but: The id field was meant to be the primary key for a conference so that the schedule file can be moved around.
But the most common file format, Frab XML, doesn't have any unique identifier so I've ended up just using the URL most of the time anyway except for the less-preferred .ics files.
In the end this all is I think causing more confusion than it's worth so I should just drop it.
Hey,
This is a very usefull app ! Do you think it will be possible to make a version for Sailfish OS ? :)
Cheers !
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.