[Gambas-user] New component gb.rss to generate and parse RSS documents
gambas at ...1...
Tue Apr 18 21:37:14 CEST 2017
Le 18/04/2017 à 19:52, Benoît Minisini a écrit :
> Le 18/04/2017 à 19:44, Tobias Boege a écrit :
>> On Sun, 16 Apr 2017, Benoît Minisini wrote:
>>> Le 02/04/2017 à 18:07, Tobias Boege a écrit :
>>>> * The date conversion routines ignore timezones completely, because
>>>> I have no clue about working with timezones in Gambas.
>>> Hi, Tobias.
>>> I have added in revision #8122 two functions to the gb.util component:
>>> Date.ToRFC822(), to convert a Gambas date/time value to its RFC822
>>> string representation, with the timezone.
>>> Date.FromRFC822(), to do the contrary.
>>> Tell me if you can use them, and if you need me to add the same
>>> functions for RFC3339 date format used by Atom.
>> Thanks for these. Reading the code (not testing it yet), I noticed four
>> * The weekday and second parts in the format are optional in the RFC
>> but mandatory in your parser.
>> * The year is a 2-digit number in the RFC. The RSS spec says it prefers
>> 4 digits. My current parser in gb.web.feed supports both, but treats
>> 2-digit years XY as 19XY (which I think is the most sensible
>> interpretation with respect to the RFC but sadly excludes publication
>> dates for news items near Christ's birth).
>> * There is no consistency check in the parser if, in case a weekday is
>> given, it matches the weekday of the date, like
>> Fri, 18 Apr 2017 12:00:00 GMT
>> would be invalid by the RFC ("5.2 SEMANTICS"), because the 18 Apr
>> is a Tuesday.
>> * At one point you use Format$(..., "hh:nn:ss") which I think may be
>> dangerous, because Format$() (as per docs) replaces ":" by the
>> specific time separator. I don't know if there are locales where this
>> is different from ":", but the RFC requires it to be ":" exactly.
>> My parser does these four things. If you want to add them, the
>> code is sufficiently commented in the relevant places.
> OK, I will look at it.
I have updated the gb.util components with your fixes. Now I think you
can use it directly in gb.web.feed.
More information about the User