pycs-devel Mailing List for Python Community Server (Page 13)
Status: Alpha
Brought to you by:
myelin
You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(3) |
Oct
(1) |
Nov
(70) |
Dec
(41) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(20) |
Feb
(9) |
Mar
(36) |
Apr
(11) |
May
(3) |
Jun
(6) |
Jul
(3) |
Aug
(13) |
Sep
(2) |
Oct
(32) |
Nov
(4) |
Dec
(7) |
| 2004 |
Jan
(14) |
Feb
(16) |
Mar
(3) |
Apr
(12) |
May
(1) |
Jun
(4) |
Jul
(13) |
Aug
(1) |
Sep
(2) |
Oct
(1) |
Nov
(2) |
Dec
(3) |
| 2005 |
Jan
(7) |
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
(2) |
Jul
|
Aug
(5) |
Sep
|
Oct
|
Nov
(2) |
Dec
(1) |
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(7) |
Nov
(18) |
Dec
(22) |
| 2007 |
Jan
(10) |
Feb
(11) |
Mar
(1) |
Apr
(6) |
May
(5) |
Jun
(5) |
Jul
(14) |
Aug
(28) |
Sep
(4) |
Oct
(6) |
Nov
(9) |
Dec
(8) |
| 2008 |
Jan
(10) |
Feb
(19) |
Mar
(38) |
Apr
(17) |
May
(13) |
Jun
(7) |
Jul
(36) |
Aug
(15) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
|
From: Phillip P. <pp...@my...> - 2003-10-14 22:57:43
|
> > Hmm, right. Part of my motivation for doing it this way is that it > > lets you filter out junk (page templates, blogrolls etc) that would > > otherwise screw up searches. So right now it only really searches > > Yes, I understand that. The problem is, that PyDS isn't specificially a > blogging software - that's just one part. So first I would have to add > bags of mirrorPost calls to all places where posts or other content is > produced. I am still unsure how to do that exactly - for example what > about structured text elements. I think it would be better to push in > the reST source and not the HTML stuff, as that would trigger searches > for "strong" for example, if <strong> is used. Hmm. I can't put exactly > why I feel uncomfortable, though. > > Maybe combining swish with mirror searches is a solution. At least it > would make weblog posts or other microcontent be better targetable for > searches and would allow to keep the rest as it is (as full pages). But > it _feels_ icky, I just don't know what a better way would be ;-) I've been thinking about this for a good nine months or so, and this is the most useful-feeling search function I've come up with :-) I guess you can look at search in two ways: 1. The search engine is responsible for looking at the HTML and figuring out what to search 2. The blogging tool is responsible for telling the search engine about anything worth searching Google/ht://Dig do it the first way, and Lucene/new-PyCS-code do it the second way. I'm convinced that the second way gives better results, but it _does_ require more effort on the part of the blogging tool. If you felt like hacking the Swish indexer, you could get it to index the mirror as well, so then you could use Swish to search everything. That would make it quicker, and bring everything back into one place. But it would be even _more_ work ... :-) Cheers, Phil |
|
From: Georg B. <gb...@mu...> - 2003-10-14 21:39:44
|
Hi! > 1400 posts?! Yep, blogging _does_ work for me ;-) > Hmm, right. Part of my motivation for doing it this way is that it > lets you filter out junk (page templates, blogrolls etc) that would > otherwise screw up searches. So right now it only really searches Yes, I understand that. The problem is, that PyDS isn't specificially a blogging software - that's just one part. So first I would have to add bags of mirrorPost calls to all places where posts or other content is produced. I am still unsure how to do that exactly - for example what about structured text elements. I think it would be better to push in the reST source and not the HTML stuff, as that would trigger searches for "strong" for example, if <strong> is used. Hmm. I can't put exactly why I feel uncomfortable, though. Maybe combining swish with mirror searches is a solution. At least it would make weblog posts or other microcontent be better targetable for searches and would allow to keep the rest as it is (as full pages). But it _feels_ icky, I just don't know what a better way would be ;-) bye, Georg |
|
From: Phillip P. <pp...@my...> - 2003-10-14 21:28:36
|
> > Sound OK? > > Depends. :-) > > I still have the problem that PyDS creates much more than just posts. > What about that stuff - I would like to search that stuff, too. So > seeding would require to push in much more than just my 1400 posts ... 1400 posts?! It would be interesting to see some benchmark results for your blog -- search for something common, and go right to the last page of the results, then run ApacheBench on that URL. I've benchmarked the raw database access (the search code can run through 450 posts [from Second p0st] about 45 times a second) but haven't tried it since plugging it in as /system/search.py. > The problem is, your solution only searches what is in the database. And > we need to think about what to do with stuff that is upstreamed, but not > mirrored to the search database. For example what about text stuff > people just put into their upstreaming spool? This is upstreamed (both > PyDS and Radio have this feature), but isn't generated. And so it isn't > mirrored. > > Maybe files upstreamed should be automatically mirrored, too? Hmm. That > would produce duplicates on weblog stuff ... > > So, no, I am not fully satisfied ;-) Hmm, right. Part of my motivation for doing it this way is that it lets you filter out junk (page templates, blogrolls etc) that would otherwise screw up searches. So right now it only really searches blog posts and stories, if you send them specifically (I only have bzero sending posts). I don't really want to search everything (e.g. the 500K HTML file that contains the first run of the Blogging Ecosystem), just stuff I've written. If you _do_ want to search everything, it might make sense to run the query both through the new search code and through Swish, and combine the results. When you index with Swish, if the user has sent in some posts to mirror, get Swish to ignore all URLs that have been sent via mirrorPosts() but index everything else. Then combine the results later on... Does that sound better? Cheers, Phil :) |
|
From: Georg B. <gb...@mu...> - 2003-10-14 21:01:58
|
Hi! > Sorry, I didn't explain clearly. mirrorPosts _does_ just add/update > posts. You send it a few posts, and it adds them into the database if Ok, that's clearer ;-) > A deletedMirroredPosts call is required, yes. Perhaps > xmlStorageSystem.deleteMirroredPosts(email, password, posts), with > 'posts' being a list of postids to delete. Yep, one is definitely needed. > If it's possible for a post to have more than one category (i.e. more > than one URL), this would force you to only pass one in. Do you think > this could be a problem? No, I already send in only one if I need to create a GUID - I just use homepage or either first category. > Sound OK? Depends. :-) I still have the problem that PyDS creates much more than just posts. What about that stuff - I would like to search that stuff, too. So seeding would require to push in much more than just my 1400 posts ... The problem is, your solution only searches what is in the database. And we need to think about what to do with stuff that is upstreamed, but not mirrored to the search database. For example what about text stuff people just put into their upstreaming spool? This is upstreamed (both PyDS and Radio have this feature), but isn't generated. And so it isn't mirrored. Maybe files upstreamed should be automatically mirrored, too? Hmm. That would produce duplicates on weblog stuff ... So, no, I am not fully satisfied ;-) bye, Georg |
|
From: Phillip P. <pp...@my...> - 2003-10-14 20:47:27
|
> Hmm. I think that is not sufficient. Reason: what if people want to remove
> postings? What if they update postings? Should people allways send all
> postings in (that wouldn't be a real option for me - too much postings).
>
> So how could you decide what to do with the postings in the database? I think
> mirrorPosts should just add/update postings. deleteMirroredPosts should
> get a list of post ids and delete them.
Sorry, I didn't explain clearly. mirrorPosts _does_ just add/update
posts. You send it a few posts, and it adds them into the database if
it doesn't have them, or updates them if it does have them. If you're
seeding the database, you send it 10 posts at a time until you're
done. You never send all the posts at once :-)
A deletedMirroredPosts call is required, yes. Perhaps
xmlStorageSystem.deleteMirroredPosts(email, password, posts), with
'posts' being a list of postids to delete.
> PyDS does allow both post updates and post deletes. And then there is the
> problem of categories - posts can be on the homepage or not (as with Radio)
> and can be in categories or not. So people might change posts with regard
> of their homepage/categories and so might move them from homepage to a
> category or back. This would imply changed guids (and therefore changes in
> postings, too).
If a post only lives in one place, you can just call mirrorPosts again
and the GUID and URL will be updated.
If it's possible for a post to have more than one category (i.e. more
than one URL), this would force you to only pass one in. Do you think
this could be a problem?
Maybe in future we could give the mirroredPosts.posts table a new
field, category[catname:S], and allow search on category...
> So I think we need explicit delete an update support. And maybe we need
> some way to sync - think of people doing strange things with their data
> and don't know what posts actually changed (like some changes in shortcuts
> in PyDS - this would change posts, even though currently this isn't
> upstreamed automatically, this might some day when conditional rerendering
> is in place). Some sync-Call that returns a list of hashes to store in the
> client database might help, so people can say "look, this is the list of
> post hashes I have in my database, tell me which ones you need me to upload
> (again) to get in sync with me".
That's a good idea. "xmlStorageSystem.getMirroredPostSummary", which
returns a list of dicts, something like:
[{'postid': 'foo',
'hash': md5("|".join(guid + url + title + text))}]
> Oh, and we should return a new flag in the server capabilities to automatically
> enable this search mirror feature.
flCanMirrorPosts <-- always true
and then if the user has sent in some posts, flCanHostSearch should be
true and flSearchUrl should point to /system/search.py?u=0001234 ...
(I might have got those last two key name wrong; substitute with
whatever RCS uses).
Sound OK?
Cheers,
Phil :-)
|
|
From: Georg B. <gb...@hu...> - 2003-10-14 11:19:58
|
Hi!
On Tue, Oct 14, 2003 at 11:10:10PM +1300, Phillip Pearson wrote:
> - added a new xmlStorageSystem.mirrorPosts(email,password,posts) method that
> takes a list of posts (structs: {postid,date,url,guid,title,text}) and dumps
> them in a new database table. It deletes them (searches by postid) if they
> already exist.
Hmm. I think that is not sufficient. Reason: what if people want to remove
postings? What if they update postings? Should people allways send all
postings in (that wouldn't be a real option for me - too much postings).
So how could you decide what to do with the postings in the database? I think
mirrorPosts should just add/update postings. deleteMirroredPosts should
get a list of post ids and delete them.
PyDS does allow both post updates and post deletes. And then there is the
problem of categories - posts can be on the homepage or not (as with Radio)
and can be in categories or not. So people might change posts with regard
of their homepage/categories and so might move them from homepage to a
category or back. This would imply changed guids (and therefore changes in
postings, too).
So I think we need explicit delete an update support. And maybe we need
some way to sync - think of people doing strange things with their data
and don't know what posts actually changed (like some changes in shortcuts
in PyDS - this would change posts, even though currently this isn't
upstreamed automatically, this might some day when conditional rerendering
is in place). Some sync-Call that returns a list of hashes to store in the
client database might help, so people can say "look, this is the list of
post hashes I have in my database, tell me which ones you need me to upload
(again) to get in sync with me".
Oh, and we should return a new flag in the server capabilities to automatically
enable this search mirror feature.
bye, Georg
|
|
From: Georg B. <gb...@hu...> - 2003-10-14 11:06:34
|
Hi! On Tue, Oct 14, 2003 at 11:10:10PM +1300, Phillip Pearson wrote: > I just pushed a whole bunch of stuff into CVS. Some tidying / refactoring I added translations to german in search.py and fixed some broken translations. bye, Georg |
|
From: Phillip P. <pp...@my...> - 2003-10-14 10:12:09
|
While hacking on the search stuff, I found that MetaKit sometimes calls abort() if you give it weird enough values. It looks like if you try to pass a unicode object into view.append() or view.find(), it crashes. It also dies if you try to give it an xmlrpclib.DateTime object, taking the whole server process down with it. Not sure if this is just on FreeBSD, but it looks like we'll have to put more input validation into the XML-RPC calls... Perhaps this is why pycs.net periodically just _stops_ without any warning. Unicode stuff coming into weblogUpdates.ping or something ... hmm. Cheers, Phil :-) |
|
From: Phillip P. <pp...@my...> - 2003-10-14 10:09:37
|
I just pushed a whole bunch of stuff into CVS. Some tidying / refactoring
(pycs.py and xmlStorageSystem.py are now a little shorter), some minor
changes (comments.py returns more helpful errors, referrers.py has a
different message) and one biggie: search.
I never managed to get enough time alone to finish the ht://Dig or Lucene
integration that I was working on, but I just hacked up a Python equivalent
to what I was doing with Lucene:
- added a new xmlStorageSystem.mirrorPosts(email,password,posts) method that
takes a list of posts (structs: {postid,date,url,guid,title,text}) and dumps
them in a new database table. It deletes them (searches by postid) if they
already exist.
- added modules/system/search.py that searches through this table.
Examples:
http://www.pycs.net/system/search.py?u=0000049&q=georg+%2Bxml-rpc
http://www.pycs.net/system/search.py?u=0000049&q=georg+-bauer
http://www.pycs.net/system/search.py?u=0000049&q=phil+-pearson
I've added support for this in to bzero ... it makes structs that look like
this:
{postid: '200310151',
'date': xmlrpclib.Date(...),
'url': 'http://www.pycs.net/archive/2003/10/15/#200310151',
'guid': 'http://www.pycs.net/archive/2003/10/15/#200310151',
'title': 'post about something',
'text': 'foo bar baz'}
It converts all incoming text into UTF-8 for storage in the database, and
displays everything as UTF-8.
TODO:
- make it respect access rules
- check that it works for non-english
- audit xml-rpc methods to make sure nothing else tries to put weird objects
in the database
------
Here are the full details of the CVS commit:
- modules/system/comments.py: added some helpful links when someone requests
comments.py?u=foo without 'p=...'
- pycs_settings.py: changed code to use standard python style; added new
mirrored_posts database table
- xmlStorageSystem.py: added xmlStorageSystem.mirrorPosts() call to allow
users to push posts into the search mirror (not really an index...)
- modules/system/rankings.py: fixed display bug - now everything appears at
the top of the screen and is spaced horizontally properly
- modules/system/referrers.py: fixed spelling
- modules/system/search.py: moved old search.py to htdig.py and made
search.py do a simple linear search through the mirrored_posts table. NB:
it doesn't respect access rules yet.
- modules/system/users.py: added indication as to whether the user is using
the search mirror (and if so, how many posts are in there)
- www/pycs.css: added some css rules for the search results
Cheers,
Phil :-)
|
|
From: Yasushi I. <ya...@lo...> - 2003-10-14 01:42:10
|
Hi,
On Tue, 14 Oct 2003 01:45:47 +1300 you wrote:
> Looks all right. I've simplified the <pre> stuff a bit, got rid of the
> global var, and added in my test cases. Attached - what do you think of
> this one?
Looks better. Thank you.
> BTW I stopped writing Python code with spaces in strange places ("foo(
> bar )") ages ago and now the PyCS code looks really weird to me. Would it
> bother anyone here to just use the normal Python way ("foo()") instead for
> new modules?
Normal Python way looks good to me, too. I agree with your proposal.
|
|
From: Georg B. <gb...@mu...> - 2003-10-13 17:35:54
|
Hi!
> it
> bother anyone here to just use the normal Python way ("foo()") instead
> for
> new modules?
No problem. I feel weird when looking into PyCS source, too, from time
to time. And I did write some of that code ;-)
Is there a Python source formatter out there? So we could change sources
to a canonical format?
bye, Georg
|
|
From: Phillip P. <pp...@my...> - 2003-10-13 12:45:15
|
> Hi, I wrote strip-o-gram version of html_cleaner.py. How about this?
Looks all right. I've simplified the <pre> stuff a bit, got rid of the
global var, and added in my test cases. Attached - what do you think of
this one?
BTW I stopped writing Python code with spaces in strange places ("foo(
bar )") ages ago and now the PyCS code looks really weird to me. Would it
bother anyone here to just use the normal Python way ("foo()") instead for
new modules?
Cheers,
Phil
|
|
From: Yasushi I. <ya...@lo...> - 2003-10-13 11:06:21
|
Hi, I wrote strip-o-gram version of html_cleaner.py. How about this?
--
#!/usr/bin/python
import re
from stripogram import HTML2SafeHTML
class PyCSSafeHTML(HTML2SafeHTML):
def __init__(self, valid_tags):
HTML2SafeHTML.__init__(self, valid_tags)
self.in_a = 0
def start_tag(self, tag):
if tag != 'a':
self.in_a = 1
def end_tag(self, tag):
if tag != 'a':
self.in_a = 0
self.result = "%s</%s>" % (self.result, tag)
def handle_data(self, data):
if data:
if not self.in_a:
data = url2link(data)
self.result = self.result + data
def url2link(text):
return re.sub(r'(http://[^\r\n \"\<]+)',
r'<a href="\1" target="_blank">\1</a>',
text,
)
def html2safehtml(s, valid_tags):
parser = PyCSSafeHTML(valid_tags)
parser.feed(s)
parser.close()
parser.cleanup()
return parser.result
IN_PRE = 0
def _newline_to_br(line):
global IN_PRE
begin = line.lower().rfind('<pre>')
end = line.lower().rfind('</pre>')
if end >= 0:
if (begin >= 0) and (begin > end): # end with <pre>
IN_PRE = 1
return line + '\n'
else: # end with </pre>
IN_PRE = 0
# are there any strings after </pre>?
if line[end+len('</pre>'):].rstrip():
return line + '<br />\n'
else:
return line + '\n'
elif begin >= 0: # end with <pre>
IN_PRE = 1
return line
else: # neither <pre> nor </pre> found
if IN_PRE:
return line + '\n'
else:
return line + '<br />\n'
def cleanHtml( text ):
text = html2safehtml(text, valid_tags=('a', 'b', 'i', 's', 'tt', 'pre'))
new_text = ''
for line in text.split('\n'):
new_text += _newline_to_br(line)
return new_text
if __name__ == '__main__':
text = [
"""I'm writing my <b>Radio Klogging Kit for Managers</b> as an <a href="http://radio.weblogs.com/0100827/instantOutliner/klogging.opml">OPML file</a> with <a href="http://www.cadenhead.org/servlet/ViewInstantOutline?opmlFile=http://radio.weblogs.com/0100827/instantOutliner/klogging.opml">a link on my site using your servlet</a>. I have a pointer to the opml in my Instant Outline. Does the polling of my i/o cascade to xref'd outlines? """,
"""It looks like someone's subscribed to the rendered form of your outline. People should be subscribing to the raw OPML version - http://rcs.myelin.cjb.net/users/0000001/instantOutliner/rogersCadenhead.opml - but actually they're subscribing to the one that calls your servlet.
Your outline is currently the most popular file on this server, because you plus one or two others are downloading it every 10-60 seconds. I can't imagine the hammering radio.weblogs.com must be getting from all the I/O polling, but it must be pretty shocking.""",
]
for post in text:
print "PARSING:"
print post
print "--->"
print cleanHtml( post )
|
|
From: Georg B. <gb...@hu...> - 2003-10-13 10:00:04
|
Hi! On Mon, Oct 13, 2003 at 11:02:46AM +1300, Phillip Pearson wrote: > I just checked out html_cleaner.py and got it to leave entities alone. > Also got it to keep track of open tags and to: I tried it and noticed that it removes SCRIPT stuff. But it might not remove those on* handlers, right? So maybe we could plug stripogram into html_cleaner to get all of it? Or could html_cleaner be reworked so that it only passes on those attributes and tags we approve? bye, Georg |
|
From: Phillip P. <pp...@my...> - 2003-10-13 08:26:58
|
> I only get connection refused on your servers? Weird. Too bad that Robertos > Link showed up on linuxtoday just today, they all get just a connection > refused. Or was your server linuxtodayed? ;-) <sigh> After I fix _my_ problems, the server gets rebooted, making it unavailable _again_! But it's working again now :-) Cheers, Phil |
|
From: Phillip P. <pp...@my...> - 2003-10-13 03:47:10
|
OK, looks like the last database rebuild kicked the server on pycs.net back into life. It's using 47 megs of RAM now and has gone through 2 CPU minutes since the restart. That works out to about 30 hits per CPU second, though, so I'm not too worried. If anybody sees the server going down or becoming unreachable again, drop me a line. With any luck this problem will go away for another year though! It looks like the same thing that happened about a year ago.....hmm. Cheers, Phil :) |
|
From: Phillip P. <pp...@my...> - 2003-10-12 22:11:44
|
I just checked out html_cleaner.py and got it to leave entities alone. Also got it to keep track of open tags and to: - discard closing tags with no matching opening tag - close all unclosed tags at the end of the comment That means: <b>foo -> <b>foo</b> and foo</b> -> foo also <foo> -> <foo> Georg - this all happens when the comment is displayed, not saved, because otherwise bugs like this would result in permanently damaged comments. This way, as soon as a fix is checked in, all comments suddenly start working :-) Cheers, Phil |
|
From: Phillip P. <pp...@my...> - 2003-10-12 19:23:43
|
> Maybe we should switch from html_cleaner to use stripogram? That's what > I use in PyDS. Seems to work quite nicely. I _think_ that's what Yasushi > says on his weblog, too. Babelfish is sometimes a bit problematic - > sometimes the english version doesn't make more sense than the japanese > one ;-) Sounds fine to me. html_cleaner _is_ used (in comments/__init__.py) but Yasushi's correct in that it doesn't attempt to strip out dodgy html tags. I'm sure there's a bunch of XSS holes in PyCS - we should drop stripogram in there and use it for things like referrer pages as well ... Cheers, Phil |
|
From: Georg B. <gb...@mu...> - 2003-10-12 18:33:51
|
Hi! Maybe we should switch from html_cleaner to use stripogram? That's what I use in PyDS. Seems to work quite nicely. I _think_ that's what Yasushi says on his weblog, too. Babelfish is sometimes a bit problematic - sometimes the english version doesn't make more sense than the japanese one ;-) bye, Georg |
|
From: Georg B. <gb...@mu...> - 2003-10-12 12:11:22
|
Hi! > I found that html_cleaner.py allow user input of any html tag. For > example, if you input < and > in comment form, PyCS converts to > < and >. Weird. From the source it looks like html_cleaner isn't actually used, at least not when storing the comment. Phil: is there just the implementation missing, or is there something I currently don't see? bye, Georg |
|
From: Yasushi I. <ya...@lo...> - 2003-10-12 11:49:55
|
Hi, I found that html_cleaner.py allow user input of any html tag. For example, if you input < and > in comment form, PyCS converts to < and >. |
|
From: Louis F. <lf...@sy...> - 2003-10-10 14:03:00
|
Hi, Problem still exists... <snip> The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /users/0000111/. Reason: Could not connect to remote machine: Operation timed out </snip> regards, Louis -----Original Message----- From: pyd...@mu... [mailto:pyd...@mu...]On Behalf Of Phillip Pearson Sent: Tuesday, October 07, 2003 7:14 AM To: PyDS Developer List (E-Mail); pyc...@li...; Rogers Cadenhead Subject: [Pyds-dev] Heads-up: pycs.net is all screwed up Hey guys, This may be affecting some of you -- just wanted to drop you a line to let you know that there is some weird shit going on with the code running on pycs.net. I'm getting segfaults inside the MetaKit (database) code on the server. I suspect that the database is damaged, but I've already rebuilt it, so I'm stumped for the moment. I've put in a supervision script to restart the server when it dies, but if anybody notices anything weird like rankings or comments not working, please get in touch ASAP so I can take a look. It should be a bit more reliable from now on -- no mre several hour outages after crashes. BTW, that means now if you get a 'proxy failure' error when accessing pages on pycs.net, something has _really_ gone wrong, so please get in touch straight away! :-) Cheers, Phil _______________________________________________ Pyds-dev mailing list Pyd...@mu... http://www.westfalen.de/cgi-bin/mailman/listinfo/pyds-dev |
|
From: Phillip P. <pp...@my...> - 2003-10-07 11:13:30
|
Hey guys, This may be affecting some of you -- just wanted to drop you a line to let you know that there is some weird shit going on with the code running on pycs.net. I'm getting segfaults inside the MetaKit (database) code on the server. I suspect that the database is damaged, but I've already rebuilt it, so I'm stumped for the moment. I've put in a supervision script to restart the server when it dies, but if anybody notices anything weird like rankings or comments not working, please get in touch ASAP so I can take a look. It should be a bit more reliable from now on -- no mre several hour outages after crashes. BTW, that means now if you get a 'proxy failure' error when accessing pages on pycs.net, something has _really_ gone wrong, so please get in touch straight away! :-) Cheers, Phil |
|
From: Georg B. <gb...@mu...> - 2003-10-03 13:39:18
|
Hi! And another bugfix: the RSS for the rss mode was totally broken. Some weird mix of RSS 1.0 and RSS 2.0 with missing elements and stuff like that :-) I didn't notice the problem because the aggregator in PyDS has a _very_ liberal parser. It tries to parse anything that might make sense out of the feed, regardless of any format or standard ... (it even groks scriptingNews format ;-) ) It was so bad, it even upset the validator so that it's programm crashed (although it looks like that was only a byproduct of the fact that everything in the feed was in one long line without linefeeds). It now validates and parses in NetNewsWire ... bye, Georg |
|
From: Georg B. <gb...@mu...> - 2003-10-03 08:56:03
|
Hi! > I just changed a stray set.documentEncoding in modules/system/users.py > to set.DocumentEncoding -- the rss feed was giving a 500 error on Ooops. Ok, and I added the weblogTitle to the list of users, so one can differentiate between same named users (for example I have a lot of blogs on muensterland.org :-) ) bye, Georg |