diff --git a/lib/json/group_section.py b/lib/json/group_section.py index 141d69c3e9e610cb813819e86a4391c975b2214f..65484308505806716b7ff4066db4c8b49b37801e 100644 --- a/lib/json/group_section.py +++ b/lib/json/group_section.py @@ -36,15 +36,33 @@ def write_groupmembers_subsection (db, xml, group_guid): group_members = db.cursor() group_members.execute(qry.qry_group_members, (group_guid,)) - wrt.write_tag(xml,2,"quantidade_membros",str(group_members.rowcount)) - - wrt.write_open_tag(xml,2,"membros") - for (user_id, user_name, user_username) in group_members: + qty=str(group_members.rowcount) + wrt.write_tag(xml,2,"quantidadeMembros",qty,",") + + wrt.write_open_tag(xml,2,"membros","[") + + row=0 + for (user_id, user_name, user_username)\ + in group_members: + + wrt.write_open_tag(xml,3,"","{") + prefix='profile/' user_attr=wrt.uidstr(wrt.urlparticipa(prefix,user_username)) - wrt.write_tag(xml,4,"uid",user_attr) - wrt.write_tag(xml,3,"usuario",user_name) - wrt.write_close_tag(xml,2,"membros") + wrt.write_tag(xml,4,"uid",user_attr,",") + wrt.write_tag(xml,4,"usuario",user_name,"") + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_members.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) + + wrt.write_close_tag(xml,2,"],") group_members.close() #--------------------------------------------------------------------# @@ -59,37 +77,46 @@ def write_groupfiles_subsection (db, xml, group_guid): # 50 = select * from elgg_metastrings where string='file_enable'; perm=wrt.postcontent_permission(db, group_guid, 50) - wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm)) - wrt.write_open_tag(xml,2,"arquivos") + wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",") + wrt.write_open_tag(xml,2,"arquivos","[") + row=0 for (post_guid, post_title, post_desc, \ owner_id, owner_name, owner_username, time)\ in group_files: - wrt.write_open_tag(xml,3,"arquivo") + wrt.write_open_tag(xml,3,"","{") prefix='file/download/' file_link=wrt.urlparticipa(prefix,str(post_guid)) prefix='file/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_tag(xml,4,"pid",post_attr) + wrt.write_tag(xml,4,"pid",post_attr,",") prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"uid",owner_attr) - wrt.write_tag(xml,4,"autor",owner_name) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"link",wrt.hrefstr(file_link)) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"uid",owner_attr,",") + wrt.write_tag(xml,4,"autor",owner_name,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"link",wrt.hrefstr(file_link),",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"arquivo") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_files.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"arquivos") + wrt.write_close_tag(xml,2,"],") group_files.close() #--------------------------------------------------------------------# @@ -104,33 +131,42 @@ def write_groupforumtopics_subsection (db, xml, group_guid): # 52 = select * from elgg_metastrings where string='forum_enable'; perm=wrt.postcontent_permission(db, group_guid, 52) - wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm)) - wrt.write_open_tag(xml,2,"debates") + wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",") + wrt.write_open_tag(xml,2,"debates","[") + row=0 for (post_guid, post_title, post_desc, \ owner_id, owner_name, owner_username, time)\ in group_forumtopics: - wrt.write_open_tag(xml,3,"debate") + wrt.write_open_tag(xml,3,"","{") prefix='discussion/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_tag(xml,4,"pid",post_attr) + wrt.write_tag(xml,4,"pid",post_attr,",") prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"uid",owner_attr) - wrt.write_tag(xml,4,"autor",owner_name) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"uid",owner_attr,",") + wrt.write_tag(xml,4,"autor",owner_name,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"debate") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_forumtopics.rowcount): + sep="}," + else: + sep="}" - wrt.write_close_tag(xml,2,"debates") + wrt.write_close_tag(xml,3,sep) + + wrt.write_close_tag(xml,2,"],") group_forumtopics.close() #--------------------------------------------------------------------# @@ -145,37 +181,46 @@ def write_groupbookmarks_subsection (db, xml, group_guid): # 49 = select * from elgg_metastrings where string='bookmarks_enable'; perm=wrt.postcontent_permission(db, group_guid, 49) - wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm)) - wrt.write_open_tag(xml,2,"favoritos") + wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",") + wrt.write_open_tag(xml,2,"favoritos","[") + row=0 for (post_guid, post_title, post_desc, \ owner_id, owner_name, owner_username, time)\ in group_bookmarks: - wrt.write_open_tag(xml,3,"") + wrt.write_open_tag(xml,3,"","{") # 90 = select * from elgg_metastrings where string='address'; bookmark_link=wrt.post_content(db,post_guid,90) prefix='bookmarks/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_tag(xml,4,"pid",post_attr) + wrt.write_tag(xml,4,"pid",post_attr,",") prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"uid",owner_attr) - wrt.write_tag(xml,4,"autor",owner_name) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"link",wrt.hrefstr(bookmark_link)) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"uid",owner_attr,",") + wrt.write_tag(xml,4,"autor",owner_name,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"link",wrt.hrefstr(bookmark_link),",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_bookmarks.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"favoritos") + wrt.write_close_tag(xml,2,"],") group_bookmarks.close() #--------------------------------------------------------------------# @@ -190,33 +235,42 @@ def write_grouppages_subsection (db, xml, group_guid): # 53 = select * from elgg_metastrings where string='pages_enable'; perm=wrt.postcontent_permission(db, group_guid, 53) - wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm)) - wrt.write_open_tag(xml,2,"paginas") + wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",") + wrt.write_open_tag(xml,2,"paginas","[") + row=0 for (post_guid, post_title, post_desc, owner_id, owner_name, owner_username, time)\ in group_pages: - wrt.write_open_tag(xml,3,"") + wrt.write_open_tag(xml,3,"","{") prefix='pages/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_tag(xml,4,"pid",post_attr) + wrt.write_tag(xml,4,"pid",post_attr,",") prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"uid",owner_attr) - wrt.write_tag(xml,4,"autor",owner_name) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"uid",owner_attr,",") + wrt.write_tag(xml,4,"autor",owner_name,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"pagina") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_pages.rowcount): + sep="}," + else: + sep="}" - wrt.write_close_tag(xml,2,"paginas") + wrt.write_close_tag(xml,3,sep) + + wrt.write_close_tag(xml,2,"],") group_pages.close() #--------------------------------------------------------------------# @@ -231,9 +285,10 @@ def write_groupvideos_subsection (db, xml, group_guid): # 399 = select * from elgg_metastrings where string='videos_enable'; perm=wrt.postcontent_permission(db, group_guid, 399) - wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm)) - wrt.write_open_tag(xml,2,"videos") + wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",") + wrt.write_open_tag(xml,2,"videos","[") + row=0 for (post_guid, post_title, post_desc, \ owner_id, owner_name, owner_username, time)\ in group_videos: @@ -241,27 +296,35 @@ def write_groupvideos_subsection (db, xml, group_guid): # 477 = select * from elgg_metastrings where string='video_url'; video_link=wrt.post_content(db,post_guid, 477) - wrt.write_open_tag(xml,3,"video") + wrt.write_open_tag(xml,3,"","{") prefix='videos/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_tag(xml,4,"pid",post_attr) + wrt.write_tag(xml,4,"pid",post_attr,",") prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"uid",owner_attr) - wrt.write_tag(xml,4,"autor",owner_name) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"link",wrt.hrefstr(video_link)) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"uid",owner_attr,",") + wrt.write_tag(xml,4,"autor",owner_name,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"link",wrt.hrefstr(video_link),",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"video") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_videos.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"videos") + wrt.write_close_tag(xml,2,"],") group_videos.close() #--------------------------------------------------------------------# @@ -276,14 +339,15 @@ def write_groupevents_subsection (db, xml, group_guid): # 54 = select * from elgg_metastrings where string='event_calendar_enable'; perm=wrt.postcontent_permission(db, group_guid, 54) - wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm)) - wrt.write_open_tag(xml,2,"eventos") + wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",") + wrt.write_open_tag(xml,2,"eventos","[") + row=0 for (post_guid, post_title, post_desc, \ owner_id, owner_name, owner_username, time)\ in group_events: - wrt.write_open_tag(xml,3,"") + wrt.write_open_tag(xml,3,"","{") # 18 = select * from elgg_metastrings where string='venue'; venue=wrt.post_content(db, post_guid, 18) @@ -305,28 +369,36 @@ def write_groupevents_subsection (db, xml, group_guid): prefix='event_calendar/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_tag(xml,4,"pid",post_attr) + wrt.write_tag(xml,4,"pid",post_attr,",") prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"uid",owner_attr) - wrt.write_tag(xml,4,"autor",owner_name,) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"organizador",organizer) - wrt.write_tag(xml,4,"contato",contact) - wrt.write_tag(xml,4,"endereco",venue) - wrt.write_tag(xml,4,"data_inicio",wrt.datestr(time_start)) - wrt.write_tag(xml,4,"data_fim",wrt.datestr(time_end)) - wrt.write_tag(xml,4,"taxa_participacao",fees) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) - - wrt.write_close_tag(xml,3,"evento") + wrt.write_tag(xml,4,"uid",owner_attr,",") + wrt.write_tag(xml,4,"autor",owner_name,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"organizador",organizer,",") + wrt.write_tag(xml,4,"contato",contact,",") + wrt.write_tag(xml,4,"endereco",venue,",") + wrt.write_tag(xml,4,"data_inicio",wrt.datestr(time_start),",") + wrt.write_tag(xml,4,"data_fim",wrt.datestr(time_end),",") + wrt.write_tag(xml,4,"taxa_participacao",fees,",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < group_events.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"eventos") + wrt.write_close_tag(xml,2,"]") group_events.close() #--------------------------------------------------------------------# @@ -336,35 +408,35 @@ def write_groups_section(db, xml_file): xml = codecs.open(xml_file,'w',encoding='utf-8') - xml.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?") - - wrt.write_open_tag(xml,0,"comunidades") + wrt.write_open_tag(xml,0,"","{") + wrt.write_open_tag(xml,0,"comunidades","[") groups_info = db.cursor() groups_info.execute(qry.qry_groups_info) + row=0 for (guid, title, desc, owner_id, owner_name, owner_username, time)\ in groups_info: - + # 45 = select * from elgg_metastrings where string='briefdescription'; brief_desc=wrt.post_content(db,guid, 45) - wrt.write_open_tag(xml,1,"") + wrt.write_open_tag(xml,1,"","{") prefix='groups/profile/' group_attr=wrt.cidstr(wrt.urlparticipa(prefix,str(guid))) - wrt.write_tag(xml,4,"cid",group_attr) + wrt.write_tag(xml,4,"cid",group_attr,",") # Write all group's information prefix='profile/' owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,2,"uid",owner_attr) - wrt.write_tag(xml,2,"proprietario",owner_name) - wrt.write_tag(xml,2,"titulo",title) - wrt.write_tag(xml,2,"data",wrt.datestr(time)) - wrt.write_tag(xml,2,"descricao",wrt.cdata(desc)) - wrt.write_tag(xml,2,"breve_descricao",wrt.cdata(brief_desc)) + wrt.write_tag(xml,2,"uid",owner_attr,",") + wrt.write_tag(xml,2,"proprietario",owner_name,",") + wrt.write_tag(xml,2,"titulo",title,",") + wrt.write_tag(xml,2,"data",wrt.datestr(time),",") + wrt.write_tag(xml,2,"descricao",wrt.cdata(desc),",") + wrt.write_tag(xml,2,"breve_descricao",wrt.cdata(brief_desc),",") if wrt.groupaccess_permission(db, guid) == 'public': @@ -378,10 +450,19 @@ def write_groups_section(db, xml_file): write_grouppages_subsection(db, xml, guid) write_groupvideos_subsection(db, xml, guid) write_groupevents_subsection(db, xml, guid) - - wrt.write_close_tag(xml,1,"comunidade") - - wrt.write_close_tag(xml,0,"comunidades") + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < groups_info.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,1,sep) + + wrt.write_close_tag(xml,0,"]") + wrt.write_close_tag(xml,0,"}") groups_info.close() diff --git a/lib/json/user_section.py b/lib/json/user_section.py index 73ec5a00a3b411b2018a31ed9d58b8b41bd65113..7e3ecdabe60447105c6ae365b0152a8749111d02 100644 --- a/lib/json/user_section.py +++ b/lib/json/user_section.py @@ -36,13 +36,31 @@ def write_userfriends_subsection (db, xml, user_guid): friends_info = db.cursor() friends_info.execute(qry.qry_user_friends, (user_guid)) - wrt.write_open_tag(xml,2,"amigos") - for (friend_id, friend_name, friend_username) in friends_info: + wrt.write_open_tag(xml,2,"amigos","[") + + row=0 + for (friend_id, friend_name, friend_username)\ + in friends_info: + + wrt.write_open_tag(xml,3,"","{") + prefix='profile/' friend_attr=wrt.uidstr(wrt.urlparticipa(prefix,friend_username)) - wrt.write_tag(xml,3,"uid",friend_attr) - wrt.write_tag(xml,3,"usuario",friend_name) - wrt.write_close_tag(xml,2,"amigos") + wrt.write_tag(xml,4,"uid",friend_attr,",") + wrt.write_tag(xml,4,"usuario",friend_name,"") + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < friends_info.rowcount): + sep="}," + else: + sep="}" + + wrt.write_tag(xml,4,str(row),str(friends_info.rowcount),"") + wrt.write_close_tag(xml,3,sep) + + wrt.write_close_tag(xml,2,"],") friends_info.close() #--------------------------------------------------------------------# @@ -52,13 +70,30 @@ def write_userowngroup_subsection (db, xml, user_guid): user_owngroups = db.cursor() user_owngroups.execute(qry.qry_user_owngroups, (user_guid, user_guid, )) - wrt.write_open_tag(xml,3,"dono") - for (group_id, group_title) in user_owngroups: + wrt.write_open_tag(xml,3,"dono","[") + + row=0 + for (group_id, group_title)\ + in user_owngroups: + + wrt.write_open_tag(xml,4,"","{") + prefix='groups/profile/' group_attr=wrt.cidstr(wrt.urlparticipa(prefix,str(group_id))) - wrt.write_tag(xml,3,"cid",group_attr) - wrt.write_tag(xml,4,"titulo",group_title) - wrt.write_close_tag(xml,3,"dono") + wrt.write_tag(xml,5,"cid",group_attr,",") + wrt.write_tag(xml,5,"titulo",group_title,"") + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_owngroups.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,4,sep) + + wrt.write_close_tag(xml,3,"],") user_owngroups.close() #--------------------------------------------------------------------# @@ -68,23 +103,40 @@ def write_usermembergroup_subsection (db, xml, user_guid): user_membergroups = db.cursor() user_membergroups.execute(qry.qry_user_membergroups, (user_guid, )) - wrt.write_open_tag(xml,3,"membro") - for (group_id, group_title) in user_membergroups: + wrt.write_open_tag(xml,3,"membro","[") + + row=0 + for (group_id, group_title)\ + in user_membergroups: + + wrt.write_open_tag(xml,4,"","{") + prefix='groups/profile/' group_attr=wrt.cidstr(wrt.urlparticipa(prefix,str(group_id))) - wrt.write_tag(xml,3,"cid",group_attr) - wrt.write_tag(xml,4,"titulo",group_title) - wrt.write_close_tag(xml,3,"membro") + wrt.write_tag(xml,5,"cid",group_attr,",") + wrt.write_tag(xml,5,"titulo",group_title,",") + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_membergroups.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,4,sep) + + wrt.write_close_tag(xml,3,"]") user_membergroups.close() #--------------------------------------------------------------------# #--------------------------------------------------------------------# def write_usergroups_subsection (db, xml, user_guid): - wrt.write_open_tag(xml,2,"comunidades") + wrt.write_open_tag(xml,2,"comunidades","{") write_userowngroup_subsection(db, xml, user_guid) write_usermembergroup_subsection(db, xml, user_guid) - wrt.write_close_tag(xml,2,"comunidades") + wrt.write_close_tag(xml,2,"},") #--------------------------------------------------------------------# #--------------------------------------------------------------------# @@ -94,8 +146,9 @@ def write_userfiles_subsection (db, xml, user_guid): # 1 = select * from elgg_entity_subtypes where subtype='file'; user_files.execute(qry.qry_user_posts, (user_guid, user_guid, 1,)) - wrt.write_open_tag(xml,2,"arquivos") + wrt.write_open_tag(xml,2,"arquivos","[") + row=0 for (post_guid, post_title, post_desc, time)\ in user_files: @@ -105,19 +158,27 @@ def write_userfiles_subsection (db, xml, user_guid): prefix='file/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"arquivo") + wrt.write_open_tag(xml,3,"","{") - wrt.write_tag(xml,4,"pid",post_attr) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"link",wrt.hrefstr(file_link)) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"pid",post_attr,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"link",wrt.hrefstr(file_link),",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"arquivo") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_files.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"arquivos") + wrt.write_close_tag(xml,2,"],") user_files.close() #--------------------------------------------------------------------# @@ -129,8 +190,9 @@ def write_userblogs_subsection (db, xml, user_guid): # 4 = select * from elgg_entity_subtypes where subtype='blog'; user_blogs.execute(qry.qry_user_posts, (user_guid, user_guid, 4,)) - wrt.write_open_tag(xml,2,"blogs") + wrt.write_open_tag(xml,2,"blogs","[") + row=0 for (post_guid, post_title, post_desc, time)\ in user_blogs: @@ -141,19 +203,27 @@ def write_userblogs_subsection (db, xml, user_guid): prefix='blog/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"blog") + wrt.write_open_tag(xml,3,"","{") - wrt.write_tag(xml,4,"pid",post_attr) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"resumo",wrt.cdata(post_excerpt)) - wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"pid",post_attr,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"resumo",wrt.cdata(post_excerpt),",") + wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"blog") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_blogs.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"blogs") + wrt.write_close_tag(xml,2,"],") user_blogs.close() #--------------------------------------------------------------------# @@ -165,8 +235,9 @@ def write_userbookmarks_subsection (db, xml, user_guid): # 13 = select * from elgg_entity_subtypes where subtype='bookmarks'; user_bookmarks.execute(qry.qry_user_posts, (user_guid, user_guid, 13,)) - wrt.write_open_tag(xml,2,"favoritos") + wrt.write_open_tag(xml,2,"favoritos","[") + row=0 for (post_guid, post_title, post_desc, time)\ in user_bookmarks: @@ -175,19 +246,27 @@ def write_userbookmarks_subsection (db, xml, user_guid): prefix='bookmarks/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"favorito") + wrt.write_open_tag(xml,3,"","{") - wrt.write_tag(xml,4,"pid",post_attr) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"link",wrt.hrefstr(bookmark_link)) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"pid",post_attr,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"link",wrt.hrefstr(bookmark_link),",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"favorito") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_bookmarks.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"favoritos") + wrt.write_close_tag(xml,2,"],") user_bookmarks.close() #--------------------------------------------------------------------# @@ -199,25 +278,34 @@ def write_userpages_subsection (db, xml, user_guid): # 14 = select * from elgg_entity_subtypes where subtype='page_top'; user_pages.execute(qry.qry_user_posts, (user_guid, user_guid, 14,)) - wrt.write_open_tag(xml,2,"paginas") + wrt.write_open_tag(xml,2,"paginas","[") + row=0 for (post_guid, post_title, post_desc, time)\ in user_pages: prefix='pages/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"pagina") + wrt.write_open_tag(xml,3,"","{") - wrt.write_tag(xml,4,"pid",post_attr) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"pid",post_attr,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"texto",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"pagina") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_pages.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"paginas") + wrt.write_close_tag(xml,2,"],") user_pages.close() #--------------------------------------------------------------------# @@ -229,8 +317,9 @@ def write_uservideos_subsection (db, xml, user_guid): # 12 = select * from elgg_entity_subtypes where subtype='videos'; user_videos.execute(qry.qry_user_posts, (user_guid, user_guid, 12,)) - wrt.write_open_tag(xml,2,"videos") + wrt.write_open_tag(xml,2,"videos","[") + row=0 for (post_guid, post_title, post_desc, time)\ in user_videos: @@ -239,19 +328,27 @@ def write_uservideos_subsection (db, xml, user_guid): prefix='videos/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"video") + wrt.write_open_tag(xml,3,"","{") - wrt.write_tag(xml,4,"pid",post_attr) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"link",wrt.hrefstr(video_link)) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_tag(xml,4,"pid",post_attr,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"link",wrt.hrefstr(video_link),",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"video") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_videos.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"videos") + wrt.write_close_tag(xml,2,"],") user_videos.close() #--------------------------------------------------------------------# @@ -264,8 +361,9 @@ def write_userevents_subsection (db, xml, user_guid): user_events.execute(qry.qry_user_posts, (user_guid, user_guid, 6,)) - wrt.write_open_tag(xml,2,"eventos") + wrt.write_open_tag(xml,2,"eventos","[") + row=0 for (post_guid, post_title, post_desc, time)\ in user_events: @@ -289,24 +387,32 @@ def write_userevents_subsection (db, xml, user_guid): prefix='event_calendar/view/' post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"") - - wrt.write_tag(xml,4,"pid",post_attr) - wrt.write_tag(xml,4,"titulo",post_title) - wrt.write_tag(xml,4,"data",wrt.datestr(time)) - wrt.write_tag(xml,4,"organizador",organizer) - wrt.write_tag(xml,4,"contato",contact) - wrt.write_tag(xml,4,"endereco",venue) - wrt.write_tag(xml,4,"data_inicio",wrt.datestr(time_start)) - wrt.write_tag(xml,4,"data_fim",wrt.datestr(time_end)) - wrt.write_tag(xml,4,"taxa_participacao",fees) - wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc)) + wrt.write_open_tag(xml,3,"","{") + + wrt.write_tag(xml,4,"pid",post_attr,",") + wrt.write_tag(xml,4,"titulo",post_title,",") + wrt.write_tag(xml,4,"data",wrt.datestr(time),",") + wrt.write_tag(xml,4,"organizador",organizer,",") + wrt.write_tag(xml,4,"contato",contact,",") + wrt.write_tag(xml,4,"endereco",venue,",") + wrt.write_tag(xml,4,"data_inicio",wrt.datestr(time_start),",") + wrt.write_tag(xml,4,"data_fim",wrt.datestr(time_end),",") + wrt.write_tag(xml,4,"taxa_participacao",fees,",") + wrt.write_tag(xml,4,"descricao",wrt.cdata(post_desc),",") wrt.write_comments(db,xml,post_guid) - wrt.write_close_tag(xml,3,"") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < user_events.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,3,sep) - wrt.write_close_tag(xml,2,"eventos") + wrt.write_close_tag(xml,2,"]") user_events.close() #--------------------------------------------------------------------# @@ -316,22 +422,23 @@ def write_users_section (db, xml_file): xml = codecs.open(xml_file,'w',encoding='utf-8') - xml.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>") - - wrt.write_open_tag(xml,0,"usuarios") + wrt.write_open_tag(xml,0,"","{") + wrt.write_open_tag(xml,0,"usuarios","[") users_info = db.cursor() users_info.execute(qry.qry_users_info) - for (guid, name, username) in users_info: + row=0 + for (guid, name, username)\ + in users_info: prefix='profile/' user_attr=wrt.uidstr(wrt.urlparticipa(prefix,username)) - wrt.write_open_tag(xml,1,"") + wrt.write_open_tag(xml,1,"","{") # Write all user's information - wrt.write_tag(xml,2,"uid",user_attr) - wrt.write_tag(xml,2,"nome",name) + wrt.write_tag(xml,2,"uid",user_attr,",") + wrt.write_tag(xml,2,"nome",name,",") # Write a list of user friend's names write_userfriends_subsection(db, xml, guid) @@ -347,9 +454,18 @@ def write_users_section (db, xml_file): write_uservideos_subsection(db, xml, guid) write_userevents_subsection(db, xml, guid) - wrt.write_close_tag(xml,1,"usuario") + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < users_info.rowcount): + sep="}," + else: + sep="}" + + wrt.write_close_tag(xml,1,sep) - wrt.write_close_tag(xml,0,"usuarios") + wrt.write_close_tag(xml,0,"]") + wrt.write_close_tag(xml,0,"}") users_info.close() diff --git a/lib/json/write_support_functions.py b/lib/json/write_support_functions.py index b8d3b93440bc91891563dd42f1ecad2fad946c9b..1168b57136628d5a68133c264148b3dd65796ddc 100644 --- a/lib/json/write_support_functions.py +++ b/lib/json/write_support_functions.py @@ -160,51 +160,56 @@ def groupaccess_permission (db, group_guid): #--------------------------------------------------------------------# #--------------------------------------------------------------------# -def write_open_tag (xml, l, tag_name): +def write_open_tag (xml, l, tag_name, sep): if len(tag_name) > 0: - name="\""+tag_name+"\"" - xml.write(lvl(l)+name+":"+"["+"\n") + xml.write(lvl(l)+"\""+tag_name+"\""+":"+sep+"\n") else: - xml.write(lvl(l)+"{"+"\n") + xml.write(lvl(l)+sep+"\n") #--------------------------------------------------------------------# #--------------------------------------------------------------------# -def write_close_tag (xml, l, tag_name): - if len(tag_name) > 0: - name="\""+tag_name+"\"" - xml.write(lvl(l)+"]"+"\n") - else: - xml.write(lvl(l)+"}"+"\n") +def write_close_tag (xml, l, sep): + xml.write(lvl(l)+sep+"\n") #--------------------------------------------------------------------# #--------------------------------------------------------------------# -def write_tag (xml, l, tag_name, info_str): - level=lvl(l) +def write_tag (xml, l, tag_name, info_str, comma): name="\""+tag_name+"\"" info="\""+info_str+"\"" - xml.write(level+name+":"+info+",\n") + xml.write(lvl(l)+name+":"+info+comma+"\n") #--------------------------------------------------------------------# #--------------------------------------------------------------------# def write_comments (db, xml, post_guid): post_comments = db.cursor() post_comments.execute(qry.qry_post_comments, (post_guid,)) - - write_open_tag(xml,4,"comentarios") - for (user_id, user_name, user_username, string, time) in post_comments: + + row=0 + + write_open_tag(xml,4,"comentarios","[") + for (user_id, user_name, user_username, string, time)\ + in post_comments: - write_open_tag(xml,5,"") + write_open_tag(xml,5,"","{") prefix='profile/' user_attr=uidstr(urlparticipa(prefix,user_username)) - write_tag(xml,6,"uid",user_attr) - write_tag(xml,6,"usuario",user_name) - write_tag(xml,6,"data",datestr(time)) - write_tag(xml,6,"mensagem",cdata(string)) + write_tag(xml,6,"uid",user_attr,",") + write_tag(xml,6,"usuario",user_name,",") + write_tag(xml,6,"data",datestr(time),",") + write_tag(xml,6,"mensagem",cdata(string),"") + + # Increment the row number to be able to know wheter is the last + # row or not. + row=row+1 + if (row < post_comments.rowcount): + sep="}," + else: + sep="}" - write_close_tag(xml,5,"") + write_close_tag(xml,5,sep) - write_close_tag(xml,4,"comentarios") + write_close_tag(xml,4,"]") post_comments.close() #--------------------------------------------------------------------#