diff --git a/lib/json/__init__.py b/lib/json/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/lib/json/group_section.py b/lib/json/group_section.py deleted file mode 100644 index 3c477ebb9bd37b0c6b8dc15d6446455d1412460a..0000000000000000000000000000000000000000 --- a/lib/json/group_section.py +++ /dev/null @@ -1,489 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -import MySQLdb - -import queries_definition as qry -import write_support_functions as wrt - -###################################################################### -# Functions that write on JSON file - -#-------------------------------------------------------------------# -def write_groupmembers_subsection (db, json, group_guid): - group_members = db.cursor() - group_members.execute(qry.qry_group_members, (group_guid,)) - - qty=str(group_members.rowcount) - wrt.write_tag(json,2,"quantidadeMembros",qty,",") - - wrt.write_open_tag(json,2,"membros","[") - - row=0 - for (user_id, user_name, user_username)\ - in group_members: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - prefix='profile/' - user_attr=wrt.urlparticipa(prefix,user_username) - - wrt.write_open_tag(json,4,"usuario","{") - wrt.write_tag(json,5,"uid",user_attr,",") - wrt.write_tag(json,5,"nome",user_name,"") - wrt.write_close_tag(json,4,"}",False) - - wrt.write_close_tag(json,3,"}",(row < group_members.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - group_members.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupfiles_subsection (db, json, group_guid): - group_files = db.cursor() - - # 1 = select * from elgg_entity_subtypes where subtype='file'; - group_files.execute(qry.qry_group_posts, (group_guid, 1,)) - - # 50 = select * from elgg_metastrings where string='file_enable'; - perm=wrt.postcontent_permission(db, group_guid, 50) - - wrt.write_tag(json,2,"arquivosHabilitado",perm,",") - wrt.write_open_tag(json,2,"arquivos","[") - - row=0 - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_files: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - prefix='file/download/' - file_link=wrt.urlparticipa(prefix,str(post_guid)) - - prefix='file/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_tag(json,4,"pid",post_attr,",") - - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,4,"autor","{") - wrt.write_tag(json,5,"uid",owner_attr,",") - wrt.write_tag(json,5,"nome",owner_name,"") - wrt.write_close_tag(json,4,"}",True) - - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"link",file_link,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < group_files.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - group_files.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupforumtopics_subsection (db, json, group_guid): - group_forumtopics = db.cursor() - - # 7 = select * from elgg_entity_subtypes where subtype='groupforumtopic'; - group_forumtopics.execute(qry.qry_group_posts, (group_guid, 7,)) - - # 52 = select * from elgg_metastrings where string='forum_enable'; - perm=wrt.postcontent_permission(db, group_guid, 52) - - wrt.write_tag(json,2,"debatesHabilitado",perm,",") - wrt.write_open_tag(json,2,"debates","[") - - row=0 - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_forumtopics: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - prefix='discussion/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_tag(json,4,"pid",post_attr,",") - - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,4,"autor","{") - wrt.write_tag(json,5,"uid",owner_attr,",") - wrt.write_tag(json,5,"nome",owner_name,"") - wrt.write_close_tag(json,4,"}",True) - - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"texto",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < group_forumtopics.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - group_forumtopics.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupbookmarks_subsection (db, json, group_guid): - group_bookmarks = db.cursor() - - # 13 = select * from elgg_entity_subtypes where subtype='bookmarks'; - group_bookmarks.execute(qry.qry_group_posts, (group_guid, 13,)) - - # 49 = select * from elgg_metastrings where string='bookmarks_enable'; - perm=wrt.postcontent_permission(db, group_guid, 49) - - wrt.write_tag(json,2,"favoritosHabilitado",perm,",") - wrt.write_open_tag(json,2,"favoritos","[") - - row=0 - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_bookmarks: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - # 90 = select * from elgg_metastrings where string='address'; - bookmark_link=wrt.post_content(db,post_guid,90) - - prefix='bookmarks/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_tag(json,4,"pid",post_attr,",") - - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,4,"autor","{") - wrt.write_tag(json,5,"uid",owner_attr,",") - wrt.write_tag(json,5,"nome",owner_name,"") - wrt.write_close_tag(json,4,"}",True) - - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"link",bookmark_link,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < group_bookmarks.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - group_bookmarks.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_grouppages_subsection (db, json, group_guid): - group_pages = db.cursor() - - # 14 = select * from elgg_entity_subtypes where subtype='page_top'; - group_pages.execute(qry.qry_group_posts, (group_guid, 14,)) - - # 53 = select * from elgg_metastrings where string='pages_enable'; - perm=wrt.postcontent_permission(db, group_guid, 53) - - wrt.write_tag(json,2,"paginasHabilitado",perm,",") - wrt.write_open_tag(json,2,"paginas","[") - - row=0 - for (post_guid, post_title, post_desc, - owner_id, owner_name, owner_username, time)\ - in group_pages: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - prefix='pages/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_tag(json,4,"pid",post_attr,",") - - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,4,"autor","{") - wrt.write_tag(json,5,"uid",owner_attr,",") - wrt.write_tag(json,5,"nome",owner_name,"") - wrt.write_close_tag(json,4,"}",True) - - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"texto",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < group_pages.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - group_pages.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupvideos_subsection (db, json, group_guid): - group_videos = db.cursor() - - # 12 = select * from elgg_entity_subtypes where subtype='videos'; - group_videos.execute(qry.qry_group_posts, (group_guid, 12,)) - - # 399 = select * from elgg_metastrings where string='videos_enable'; - perm=wrt.postcontent_permission(db, group_guid, 399) - - wrt.write_tag(json,2,"videosHabilitado",perm,",") - wrt.write_open_tag(json,2,"videos","[") - - row=0 - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_videos: - - row=row+1 - - # 477 = select * from elgg_metastrings where string='video_url'; - video_link=wrt.post_content(db,post_guid, 477) - - wrt.write_open_tag(json,3,"","{") - - prefix='videos/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_tag(json,4,"pid",post_attr,",") - - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,4,"autor","{") - wrt.write_tag(json,5,"uid",owner_attr,",") - wrt.write_tag(json,5,"nome",owner_name,"") - wrt.write_close_tag(json,4,"}",True) - - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"link",video_link,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < group_videos.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - group_videos.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupevents_subsection (db, json, group_guid): - group_events = db.cursor() - - # 6 = select * from elgg_entity_subtypes where subtype='calendar_event'; - group_events.execute(qry.qry_group_posts, (group_guid, 6,)) - - # 54 = select * from elgg_metastrings where string='event_calendar_enable'; - perm=wrt.postcontent_permission(db, group_guid, 54) - - wrt.write_tag(json,2,"eventosHabilitado",perm,",") - wrt.write_open_tag(json,2,"eventos","[") - - row=0 - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_events: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - # 18 = select * from elgg_metastrings where string='venue'; - venue=wrt.post_content(db, post_guid, 18) - - # 20 = select * from elgg_metastrings where string='start_date'; - time_start=wrt.post_content(db, post_guid, 20) - - # 22 = select * from elgg_metastrings where string='end_date'; - time_end=wrt.post_content(db, post_guid, 22) - - # 26 = select * from elgg_metastrings where string='fees'; - fees=wrt.post_content(db, post_guid, 26) - - # 28 = select * from elgg_metastrings where string='contact'; - contact=wrt.post_content(db, post_guid, 28) - - # 30 = select * from elgg_metastrings where string='organizer'; - organizer=wrt.post_content(db, post_guid, 30) - - prefix='event_calendar/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_tag(json,4,"pid",post_attr,",") - - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,4,"autor","{") - wrt.write_tag(json,5,"uid",owner_attr,",") - wrt.write_tag(json,5,"nome",owner_name,"") - wrt.write_close_tag(json,4,"}",True) - - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"organizador",organizer,",") - wrt.write_tag(json,4,"contato",contact,",") - wrt.write_tag(json,4,"endereco",venue,",") - wrt.write_tag(json,4,"dataInicio",wrt.datestr(time_start),",") - wrt.write_tag(json,4,"dataFim",wrt.datestr(time_end),",") - wrt.write_tag(json,4,"taxaParticipacao",fees,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < group_events.rowcount)) - - wrt.write_close_tag(json,2,"]",False) - - group_events.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groups_section (db, json,\ - guid, title, desc, owner_id, owner_name, owner_username, time): - - # 45 = select * from elgg_metastrings where string='briefdescription'; - brief_desc=wrt.post_content(db,guid, 45) - - prefix='groups/profile/' - group_attr=wrt.urlparticipa(prefix,str(guid)) - wrt.write_tag(json,2,"cid",group_attr,",") - - # Write all group's information - prefix='profile/' - owner_attr=wrt.urlparticipa(prefix,owner_username) - - wrt.write_open_tag(json,2,"proprietario","{") - wrt.write_tag(json,3,"uid",owner_attr,",") - wrt.write_tag(json,3,"nome",owner_name,"") - wrt.write_close_tag(json,2,"}",True) - - wrt.write_tag(json,2,"titulo",title,",") - wrt.write_tag(json,2,"data",wrt.datestr(time),",") - wrt.write_tag(json,2,"descricao",desc,",") - - group_access = wrt.groupaccess_permission(db, guid) - - if group_access == 'public': - comma="," - else: - comma="" - - wrt.write_tag(json,2,"breveDescricao",brief_desc,comma) - - if group_access == 'public': - - # Write a list of group member's name - write_groupmembers_subsection(db, json, guid) - - # Write a list, and all the info, of all posts made on the group. - write_groupfiles_subsection(db, json, guid) - write_groupforumtopics_subsection(db, json, guid) - write_groupbookmarks_subsection(db, json, guid) - write_grouppages_subsection(db, json, guid) - write_groupvideos_subsection(db, json, guid) - write_groupevents_subsection(db, json, guid) -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_singlefile_groups_section (db, dir_results): - - groups_info = db.cursor() - groups_info.execute(qry.qry_groups_info) - - json_filename=dir_results+wrt.date_today()+"_comunidades"+".json" - json = wrt.open_json_file(json_filename) - - wrt.write_open_tag(json,0,"","{") - wrt.write_open_tag(json,0,"comunidades","[") - - row=0 - for (guid, title, desc, owner_id, owner_name, owner_username, time)\ - in groups_info: - - row=row+1 - - wrt.write_open_tag(json,1,"","{") - - write_groups_section(db,json,\ - guid,title,desc,owner_id,owner_name,owner_username,time) - - wrt.write_close_tag(json,1,"}",(row < groups_info.rowcount)) - - wrt.write_close_tag(json,0,"]",False) - wrt.write_close_tag(json,0,"}",False) - - groups_info.close() - - json.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_multifile_groups_section (db, dir_results): - - groups_info = db.cursor() - groups_info.execute(qry.qry_groups_info) - - for (guid, title, desc, owner_id, owner_name, owner_username, time)\ - in groups_info: - - json_filename=dir_results+'/groups/'+str(guid)+'.json' - json = wrt.open_json_file(json_filename) - - wrt.write_open_tag(json,0,"","{") - wrt.write_open_tag(json,1,"usuario","{") - - write_groups_section(db,json,\ - guid,title,desc,owner_id,owner_name,owner_username,time) - - wrt.write_close_tag(json,1,"}",False) - wrt.write_close_tag(json,0,"}",False) - - json.close() - - groups_info.close() -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/json/queries_definition.py b/lib/json/queries_definition.py deleted file mode 100644 index f864bad205bda5f4de61ba4c661d3298631c9a8d..0000000000000000000000000000000000000000 --- a/lib/json/queries_definition.py +++ /dev/null @@ -1,166 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -###################################################################### -# Users Section Query definitions: - -#--------------------------------------------------------------------# -# Argument: None -# Return: All member instances, and its info, from database. -qry_users_info = \ -(" SELECT u.guid, u.name, u.username \ - FROM elgg_entities e, elgg_users_entity u \ - WHERE e.guid = u.guid \ - AND (e.access_id = 1 OR e.access_id = 2); ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID / InfoType_ID -# Return: All InfoTypes' posts made by this group. -qry_user_posts = \ -(" SELECT o.guid, o.title, o.description, e.time_created \ - FROM elgg_entities e, elgg_objects_entity o \ - WHERE e.guid = o.guid \ - AND (e.access_id = 1 OR e.access_id = 2) \ - AND e.owner_guid = %s AND e.container_guid = %s AND e.subtype = %s \ - ORDER BY e.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: User_ID -# Return: All user friends' name -qry_user_friends = \ -(" SELECT u.guid, u.name, u.username \ - FROM elgg_users_entity u, elgg_entity_relationships r \ - WHERE u.guid = r.guid_two \ - AND r.guid_one = %s AND r.relationship = 'friend'; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: User_ID -# Return: Name of all the groups owned/created by the user. -qry_user_owngroups = \ -(" SELECT g.guid, g.name \ - FROM elgg_entities e, elgg_groups_entity g \ - WHERE e.guid = g.guid \ - AND e.owner_guid = %s AND e.container_guid = %s; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: User_ID -# Return: Name of all the groups that the user is a member. -qry_user_membergroups = \ -(" SELECT g.guid, g.name \ - FROM elgg_entity_relationships r, elgg_groups_entity g \ - WHERE r.guid_two = g.guid \ - AND r.relationship = 'member' AND r.guid_one = %s; ") -#--------------------------------------------------------------------# - -###################################################################### - -###################################################################### -# Group Section Query definitions: - -#--------------------------------------------------------------------# -# Argument: None -# Return: All group instances, and its info, from database. -qry_groups_info = \ -(" SELECT g.guid, g.name, g.description, \ - u.guid, u.name, u.username, e.time_created \ - FROM elgg_entities e, elgg_groups_entity g, elgg_users_entity u\ - WHERE e.guid = g.guid AND e.owner_guid = u.guid \ - AND (e.access_id = 1 OR e.access_id = 2) \ - ORDER BY e.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID / InfoType_ID -# Return: All InfoTypes' posts from this group. -qry_group_posts = \ -(" SELECT o.guid, o.title, o.description, \ - u.guid, u.name, u.username, e.time_created\ - FROM elgg_entities e, elgg_objects_entity o, elgg_users_entity u\ - WHERE e.guid = o.guid AND e.owner_guid = u.guid\ - AND (e.access_id = 1 OR e.access_id = 2) \ - AND e.container_guid = %s AND e.subtype = %s \ - ORDER BY e.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID -# Return: Flag containing the access control to become a group member -qry_group_access_permission = \ -(" SELECT CASE WHEN s.string = '2' THEN 'public' ELSE 'private' END \ - FROM elgg_metadata d, elgg_metastrings s \ - WHERE d.value_id = s.id \ - AND d.entity_guid = %s AND d.name_id = %s; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID / InfoType_ID -# Return: Yes or No, depending on the permission given by the owner. -qry_post_content_permission = \ -(" SELECT CASE WHEN s.string = 'yes' THEN 'Sim' ELSE 'Nao' END \ - FROM elgg_metadata d, elgg_metastrings s \ - WHERE d.value_id = s.id \ - AND d.entity_guid = %s AND d.name_id = %s;") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID -# Return: All members' name from this group. -qry_group_members = \ -(" SELECT u.guid, u.name, u.username \ - FROM elgg_users_entity u, elgg_entity_relationships r \ - WHERE u.guid = r.guid_one \ - AND r.relationship = 'member' AND r.guid_two = %s; ") -#--------------------------------------------------------------------# - -###################################################################### - -###################################################################### - -#--------------------------------------------------------------------# -# Argument: Post_ID -# Return: All comments, and its info, made on the post. -qry_post_comments = \ -(" SELECT u.guid, u.name, u.username, m.string, a.time_created \ - FROM elgg_annotations a, elgg_metastrings m, elgg_users_entity u \ - WHERE a.value_id = m.id AND a.owner_guid = u.guid \ - AND (a.access_id = 1 OR a.access_id = 2) \ - AND a.entity_guid = %s \ - ORDER BY a.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Post_ID / InfoType_ID -# Return: Essential information about the group or post, such as -# blog's excerpts and bookmark's link -qry_post_content = \ -(" SELECT s.string\ - FROM elgg_metadata d, elgg_metastrings s \ - WHERE d.value_id = s.id \ - AND d.entity_guid = %s AND d.name_id = %s; ") -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/json/user_section.py b/lib/json/user_section.py deleted file mode 100644 index b5de82489a7fb3aa542a28c0af74d502c3af083a..0000000000000000000000000000000000000000 --- a/lib/json/user_section.py +++ /dev/null @@ -1,457 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -import MySQLdb - -import queries_definition as qry -import write_support_functions as wrt - -###################################################################### -# Functions that write on JSON file - -#--------------------------------------------------------------------# -def write_userfriends_subsection (db, json, user_guid): - friends_info = db.cursor() - friends_info.execute(qry.qry_user_friends, (user_guid)) - - qty=str(friends_info.rowcount) - wrt.write_tag(json,2,"quantidadeAmigos",qty,",") - - wrt.write_open_tag(json,2,"amigos","[") - - row=0 - for (friend_id, friend_name, friend_username)\ - in friends_info: - - row=row+1 - - wrt.write_open_tag(json,3,"","{") - - prefix='profile/' - friend_attr=wrt.urlparticipa(prefix,friend_username) - - wrt.write_tag(json,4,"uid",friend_attr,",") - wrt.write_tag(json,4,"usuario",friend_name,"") - - wrt.write_close_tag(json,3,"}",(row < friends_info.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - friends_info.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userowngroup_subsection (db, json, user_guid): - user_owngroups = db.cursor() - user_owngroups.execute(qry.qry_user_owngroups, (user_guid, user_guid, )) - - wrt.write_open_tag(json,3,"dono","[") - - row=0 - for (group_id, group_title)\ - in user_owngroups: - - row=row+1 - - wrt.write_open_tag(json,4,"","{") - - prefix='groups/profile/' - group_attr=wrt.urlparticipa(prefix,str(group_id)) - - wrt.write_tag(json,5,"cid",group_attr,",") - wrt.write_tag(json,5,"titulo",group_title,"") - - wrt.write_close_tag(json,4,"}",(row < user_owngroups.rowcount)) - - wrt.write_close_tag(json,3,"]",True) - - user_owngroups.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_usermembergroup_subsection (db, json, user_guid): - user_membergroups = db.cursor() - user_membergroups.execute(qry.qry_user_membergroups, (user_guid, )) - - wrt.write_open_tag(json,3,"participante","[") - - row=0 - for (group_id, group_title)\ - in user_membergroups: - - row=row+1 - - wrt.write_open_tag(json,4,"","{") - - prefix='groups/profile/' - group_attr=wrt.urlparticipa(prefix,str(group_id)) - - wrt.write_tag(json,5,"cid",group_attr,",") - wrt.write_tag(json,5,"titulo",group_title,"") - - wrt.write_close_tag(json,4,"}",(row < user_membergroups.rowcount)) - - wrt.write_close_tag(json,3,"]",False) - - user_membergroups.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_usergroups_subsection (db, json, user_guid): - wrt.write_open_tag(json,2,"comunidades","{") - write_userowngroup_subsection(db, json, user_guid) - write_usermembergroup_subsection(db, json, user_guid) - wrt.write_close_tag(json,2,"}",True) -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userfiles_subsection (db, json, user_guid): - user_files = db.cursor() - - # 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(json,2,"arquivos","[") - - row=0 - for (post_guid, post_title, post_desc, time)\ - in user_files: - - row=row+1 - - prefix="file/download/" - file_link=wrt.urlparticipa(prefix,str(post_guid)) - - prefix='file/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - - wrt.write_open_tag(json,3,"","{") - - wrt.write_tag(json,4,"pid",post_attr,",") - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"link",file_link,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < user_files.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - user_files.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userblogs_subsection (db, json, user_guid): - user_blogs = db.cursor() - - # 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(json,2,"blogs","[") - - row=0 - for (post_guid, post_title, post_desc, time)\ - in user_blogs: - - row=row+1 - - post_excerpt = db.cursor() - - # 64 = select * from elgg_metastrings where string='excerpt'; - post_excerpt=wrt.post_content(db,post_guid,64) - - prefix='blog/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_open_tag(json,3,"","{") - - wrt.write_tag(json,4,"pid",post_attr,",") - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"resumo",post_excerpt,",") - wrt.write_tag(json,4,"texto",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < user_blogs.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - user_blogs.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userbookmarks_subsection (db, json, user_guid): - user_bookmarks = db.cursor() - - # 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(json,2,"favoritos","[") - - row=0 - for (post_guid, post_title, post_desc, time)\ - in user_bookmarks: - - row=row+1 - - # 90 = select * from elgg_metastrings where string='address'; - bookmark_link=wrt.post_content(db,post_guid,90) - - prefix='bookmarks/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - wrt.write_open_tag(json,3,"","{") - - wrt.write_tag(json,4,"pid",post_attr,",") - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"link",bookmark_link,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < user_bookmarks.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - user_bookmarks.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userpages_subsection (db, json, user_guid): - user_pages = db.cursor() - - # 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(json,2,"paginas","[") - - row=0 - for (post_guid, post_title, post_desc, time)\ - in user_pages: - - row=row+1 - - prefix='pages/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - - wrt.write_open_tag(json,3,"","{") - - wrt.write_tag(json,4,"pid",post_attr,",") - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"texto",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < user_pages.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - user_pages.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_uservideos_subsection (db, json, user_guid): - user_videos = db.cursor() - - # 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(json,2,"videos","[") - - row=0 - for (post_guid, post_title, post_desc, time)\ - in user_videos: - - row=row+1 - - # 477 = select * from elgg_metastrings where string='video_url'; - video_link=wrt.post_content(db, post_guid, 477) - - prefix='videos/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - - wrt.write_open_tag(json,3,"","{") - - wrt.write_tag(json,4,"pid",post_attr,",") - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"link",video_link,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < user_videos.rowcount)) - - wrt.write_close_tag(json,2,"]",True) - - user_videos.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userevents_subsection (db, json, user_guid): - user_events = db.cursor() - - # 6 = select * from elgg_entity_subtypes where subtype='calendar_event'; - user_events.execute(qry.qry_user_posts, (user_guid, user_guid, 6,)) - - - wrt.write_open_tag(json,2,"eventos","[") - - row=0 - for (post_guid, post_title, post_desc, time)\ - in user_events: - - row=row+1 - - # 18 = select * from elgg_metastrings where string='venue'; - venue=wrt.post_content(db, post_guid, 18) - - # 20 = select * from elgg_metastrings where string='start_date'; - time_start=wrt.post_content(db, post_guid, 20) - - # 22 = select * from elgg_metastrings where string='end_date'; - time_end=wrt.post_content(db, post_guid, 22) - - # 26 = select * from elgg_metastrings where string='fees'; - fees=wrt.post_content(db, post_guid, 26) - - # 28 = select * from elgg_metastrings where string='contact'; - contact=wrt.post_content(db, post_guid, 28) - - # 30 = select * from elgg_metastrings where string='organizer'; - organizer=wrt.post_content(db, post_guid, 30) - - prefix='event_calendar/view/' - post_attr=wrt.urlparticipa(prefix,str(post_guid)) - - wrt.write_open_tag(json,3,"","{") - - wrt.write_tag(json,4,"pid",post_attr,",") - wrt.write_tag(json,4,"titulo",post_title,",") - wrt.write_tag(json,4,"data",wrt.datestr(time),",") - wrt.write_tag(json,4,"organizador",organizer,",") - wrt.write_tag(json,4,"contato",contact,",") - wrt.write_tag(json,4,"endereco",venue,",") - wrt.write_tag(json,4,"dataInicio",time_start,",") - wrt.write_tag(json,4,"dataFim",time_end,",") - wrt.write_tag(json,4,"taxaParticipacao",fees,",") - wrt.write_tag(json,4,"descricao",post_desc,",") - - wrt.write_comments(db,json,post_guid) - - wrt.write_close_tag(json,3,"}",(row < user_events.rowcount)) - - wrt.write_close_tag(json,2,"]",False) - - user_events.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_users_section (db, json, \ - guid, name, username): - - prefix='profile/' - user_attr=wrt.urlparticipa(prefix,username) - - # Write all user's information - wrt.write_tag(json,2,"uid",user_attr,",") - wrt.write_tag(json,2,"nome",name,",") - - # Write a list of user friend's names - write_userfriends_subsection(db, json, guid) - - # Write a list of all groups that the user owns or belongs - write_usergroups_subsection(db, json, guid) - - # Write a list, and all the info, of all posts made by the user - write_userfiles_subsection(db, json, guid) - write_userblogs_subsection(db, json, guid) - write_userbookmarks_subsection(db, json, guid) - write_userpages_subsection(db, json, guid) - write_uservideos_subsection(db, json, guid) - write_userevents_subsection(db, json, guid) -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_singlefile_users_section (db, dir_results): - - users_info = db.cursor() - users_info.execute(qry.qry_users_info) - - json_filename=dir_results+wrt.date_today()+"_usuarios"+".json" - json = wrt.open_json_file(json_filename) - - wrt.write_open_tag(json,0,"","{") - wrt.write_open_tag(json,0,"usuarios","[") - - row=0 - for (guid, name, username)\ - in users_info: - - row=row+1 - - wrt.write_open_tag(json,1,"","{") - - write_users_section(db,json,\ - guid,name,username) - - wrt.write_close_tag(json,1,"}",(row < users_info.rowcount)) - - wrt.write_close_tag(json,0,"]",False) - wrt.write_close_tag(json,0,"}",False) - - users_info.close() - - json.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_multifile_users_section (db, dir_results): - - users_info = db.cursor() - users_info.execute(qry.qry_users_info) - - for (guid, name, username)\ - in users_info: - - json_filename=dir_results+'/users/'+str(guid)+'.json' - json = wrt.open_json_file(json_filename) - - wrt.write_open_tag(json,0,"","{") - wrt.write_open_tag(json,1,"usuario","{") - - write_users_section(db,json,\ - guid,name,username) - - wrt.write_close_tag(json,1,"}",False) - wrt.write_close_tag(json,0,"}",False) - - json.close() - - users_info.close() -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/json/write_support_functions.py b/lib/json/write_support_functions.py deleted file mode 100644 index dbc0566ff96fa0ccc228d2e8d7bda2a59354b6fd..0000000000000000000000000000000000000000 --- a/lib/json/write_support_functions.py +++ /dev/null @@ -1,241 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -import MySQLdb -import codecs -import datetime -import base64 - -import queries_definition as qry - -###################################################################### -# Support functions: - -#--------------------------------------------------------------------# -def open_json_file (json_filename): - json_file = codecs.open(json_filename,'w',encoding='utf-8') - return json_file -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def date_today(): - date = str(datetime.date.today()) - return date -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def lvl (l): - if l == 1: - return "\t" - elif l == 2: - return "\t\t" - elif l == 3: - return "\t\t\t" - elif l == 4: - return "\t\t\t\t" - elif l == 5: - return "\t\t\t\t\t" - elif l == 6: - return "\t\t\t\t\t\t" - elif l == 7: - return "\t\t\t\t\t\t\t" - else: - return "" -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def substbadc (string): - string = string.replace('\\','\\\\') - string = string.replace('"','\\"') - string = string.replace('\t',' ') - string = string.replace('\n',' ') - string = string.replace('\r',' ') - return string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def cdata (string): - cdata_string="<![CDATA["+string+"]]>" - return cdata_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def uidstr (guid): - uid_string=" uid="+"\""+guid+"\"" - return uid_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def cidstr (guid): - uid_string=" cid="+"\""+guid+"\"" - return uid_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def pidstr (guid): - pid_string=" pid="+"\""+guid+"\"" - return pid_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def permstr (perm): - perm_string=" habilitado="+"\""+str(perm)+"\"" - return perm_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def qtystr (quantity): - qty_string=" quantidade="+"\""+str(quantity)+"\"" - return qty_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def urlparticipa (prefix, guid): - http_str="http://participatorio.juventude.gov.br/" - url_participa=http_str+prefix+guid - return url_participa -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def hrefstr (url): - href_string=" href="+"\""+url+"\"" - return href_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def datestr (time): - if time != '': - date=str(datetime.datetime.fromtimestamp(int(time))) - else: - date='' - return date -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def post_content (db, post_guid, content_typeid): - content = db.cursor() - content.execute(qry.qry_post_content, (post_guid, content_typeid,)) - if content.rowcount == 1: - post_content = content.fetchone()[0] - else: - post_content='' - print "ERRO! Nenhum ou Mais do que um resultado para a query" - - content.close() - - return post_content -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def postcontent_permission (db, group_guid, content_id): - - perm = db.cursor() - perm.execute(qry.qry_post_content_permission, (group_guid, content_id,)) - - if perm.rowcount == 1: - permission=perm.fetchone()[0] - else: - permission='' - print "ERRO! Nenhum ou Mais do que um resultado para a query" - - perm.close() - - return permission -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def groupaccess_permission (db, group_guid): - - access = db.cursor() - - # 55 = select * from elgg_metastrings where string = 'membership'; - access.execute(qry.qry_group_access_permission, (group_guid, 55,)) - - if access.rowcount == 1: - access_control=access.fetchone()[0] - else: - access_control='' - print "ERRO! Nenhum ou Mais do que um resultado para a query" - - access.close() - - return access_control -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_open_tag (xml, l, tag_name, sep): - if len(tag_name) > 0: - xml.write(lvl(l)+"\""+tag_name+"\""+":"+sep+"\n") - else: - xml.write(lvl(l)+sep+"\n") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_close_tag (xml, l, sep, comma_flag): - if comma_flag == True: - xml.write(lvl(l)+sep+","+"\n") - else: - xml.write(lvl(l)+sep+"\n") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_tag (xml, l, tag_name, info_str, comma): - name="\""+tag_name+"\"" - info="\""+substbadc(info_str)+"\"" - 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","[") - - row=0 - for (user_id, user_name, user_username, string, time)\ - in post_comments: - - row=row+1 - - write_open_tag(xml,5,"","{") - - prefix='profile/' - user_attr=urlparticipa(prefix,user_username) - - write_open_tag(xml,6,"usuario","{") - write_tag(xml,7,"uid",user_attr,",") - write_tag(xml,7,"nome",user_name,"") - write_close_tag(xml,6,"}",True) - - write_tag(xml,6,"data",datestr(time),",") - write_tag(xml,6,"mensagem",string,"") - - write_close_tag(xml,5,"}",(row < post_comments.rowcount)) - - write_close_tag(xml,4,"]",False) - - post_comments.close() -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/xml/__init__.py b/lib/xml/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/lib/xml/group_section.py b/lib/xml/group_section.py deleted file mode 100644 index 0fc61502664d459d80feee11eef87f5c1297a1b0..0000000000000000000000000000000000000000 --- a/lib/xml/group_section.py +++ /dev/null @@ -1,382 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -import MySQLdb - -import queries_definition as qry -import write_support_functions as wrt - -###################################################################### -# Functions that write on XML file - -#-------------------------------------------------------------------# -def write_groupmembers_subsection (db, xml, group_guid): - group_members = db.cursor() - group_members.execute(qry.qry_group_members, (group_guid,)) - - qty=str(group_members.rowcount) - wrt.write_tag(xml,2,"quantidade_membros",qty,'') - - wrt.write_open_tag(xml,2,"membros",'') - for (user_id, user_name, user_username) in group_members: - prefix='profile/' - user_attr=wrt.uidstr(wrt.urlparticipa(prefix,user_username)) - wrt.write_tag(xml,3,"usuario",user_name,user_attr) - wrt.write_close_tag(xml,2,"membros") - - group_members.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupfiles_subsection (db, xml, group_guid): - group_files = db.cursor() - - # 1 = select * from elgg_entity_subtypes where subtype='file'; - group_files.execute(qry.qry_group_posts, (group_guid, 1,)) - - # 50 = select * from elgg_metastrings where string='file_enable'; - perm=wrt.postcontent_permission(db, group_guid, 50) - - wrt.write_open_tag(xml,2,"arquivos",wrt.permstr(perm)) - - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_files: - - 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_open_tag(xml,3,"arquivo",post_attr) - - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"autor",owner_name,owner_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") - - wrt.write_close_tag(xml,2,"arquivos") - - group_files.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupforumtopics_subsection (db, xml, group_guid): - group_forumtopics = db.cursor() - - # 7 = select * from elgg_entity_subtypes where subtype='groupforumtopic'; - group_forumtopics.execute(qry.qry_group_posts, (group_guid, 7,)) - - # 52 = select * from elgg_metastrings where string='forum_enable'; - perm=wrt.postcontent_permission(db, group_guid, 52) - - wrt.write_open_tag(xml,2,"debates",wrt.permstr(perm)) - - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_forumtopics: - - prefix='discussion/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"debate",post_attr) - - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"autor",owner_name,owner_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,"debate") - - wrt.write_close_tag(xml,2,"debates") - - group_forumtopics.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupbookmarks_subsection (db, xml, group_guid): - group_bookmarks = db.cursor() - - # 13 = select * from elgg_entity_subtypes where subtype='bookmarks'; - group_bookmarks.execute(qry.qry_group_posts, (group_guid, 13,)) - - # 49 = select * from elgg_metastrings where string='bookmarks_enable'; - perm=wrt.postcontent_permission(db, group_guid, 49) - - wrt.write_open_tag(xml,2,"favoritos",wrt.permstr(perm)) - - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_bookmarks: - - # 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_open_tag(xml,3,"favorito",post_attr) - - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"autor",owner_name,owner_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") - - wrt.write_close_tag(xml,2,"favoritos") - - group_bookmarks.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_grouppages_subsection (db, xml, group_guid): - group_pages = db.cursor() - - # 14 = select * from elgg_entity_subtypes where subtype='page_top'; - group_pages.execute(qry.qry_group_posts, (group_guid, 14,)) - - # 53 = select * from elgg_metastrings where string='pages_enable'; - perm=wrt.postcontent_permission(db, group_guid, 53) - - wrt.write_open_tag(xml,2,"paginas",wrt.permstr(perm)) - - for (post_guid, post_title, post_desc, - owner_id, owner_name, owner_username, time)\ - in group_pages: - - prefix='pages/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"pagina",post_attr) - - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"autor",owner_name,owner_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") - - wrt.write_close_tag(xml,2,"paginas") - - group_pages.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupvideos_subsection (db, xml, group_guid): - group_videos = db.cursor() - - # 12 = select * from elgg_entity_subtypes where subtype='videos'; - group_videos.execute(qry.qry_group_posts, (group_guid, 12,)) - - # 399 = select * from elgg_metastrings where string='videos_enable'; - perm=wrt.postcontent_permission(db, group_guid, 399) - - wrt.write_open_tag(xml,2,"videos",wrt.permstr(perm)) - - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_videos: - - # 477 = select * from elgg_metastrings where string='video_url'; - video_link=wrt.post_content(db,post_guid, 477) - - prefix='videos/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"video",post_attr) - - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"autor",owner_name,owner_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") - - wrt.write_close_tag(xml,2,"videos") - - group_videos.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groupevents_subsection (db, xml, group_guid): - group_events = db.cursor() - - # 6 = select * from elgg_entity_subtypes where subtype='calendar_event'; - group_events.execute(qry.qry_group_posts, (group_guid, 6,)) - - # 54 = select * from elgg_metastrings where string='event_calendar_enable'; - perm=wrt.postcontent_permission(db, group_guid, 54) - - wrt.write_open_tag(xml,2,"eventos",wrt.permstr(perm)) - - for (post_guid, post_title, post_desc, \ - owner_id, owner_name, owner_username, time)\ - in group_events: - - # 18 = select * from elgg_metastrings where string='venue'; - venue=wrt.post_content(db, post_guid, 18) - - # 20 = select * from elgg_metastrings where string='start_date'; - time_start=wrt.post_content(db, post_guid, 20) - - # 22 = select * from elgg_metastrings where string='end_date'; - time_end=wrt.post_content(db, post_guid, 22) - - # 26 = select * from elgg_metastrings where string='fees'; - fees=wrt.post_content(db, post_guid, 26) - - # 28 = select * from elgg_metastrings where string='contact'; - contact=wrt.post_content(db, post_guid, 28) - - # 30 = select * from elgg_metastrings where string='organizer'; - organizer=wrt.post_content(db, post_guid, 30) - - prefix='event_calendar/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"evento",post_attr) - - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,4,"autor",owner_name,owner_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_close_tag(xml,3,"evento") - - wrt.write_comments(db,xml,post_guid) - - wrt.write_close_tag(xml,2,"eventos") - - group_events.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_groups_section(db, xml, \ - guid, title, desc, owner_id, owner_name, owner_username, time): - - # 45 = select * from elgg_metastrings where string='briefdescription'; - brief_desc=wrt.post_content(db,guid, 45) - - prefix='groups/profile/' - group_attr=wrt.cidstr(wrt.urlparticipa(prefix,str(guid))) - wrt.write_open_tag(xml,1,"comunidade",group_attr) - - # Write all group's information - prefix='profile/' - owner_attr=wrt.uidstr(wrt.urlparticipa(prefix,owner_username)) - wrt.write_tag(xml,2,"proprietario",owner_name,owner_attr) - 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': - - # Write a list of group member's name - write_groupmembers_subsection(db, xml, guid) - - # Write a list, and all the info, of all posts made on the group. - write_groupfiles_subsection(db, xml, guid) - write_groupforumtopics_subsection(db, xml, guid) - write_groupbookmarks_subsection(db, xml, guid) - 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") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_singlefile_groups_section (db, dir_results): - - groups_info = db.cursor() - groups_info.execute(qry.qry_groups_info) - - xml_filename=dir_results+wrt.date_today()+"_comunidades"+".xml" - xml = wrt.open_xml_file(xml_filename) - - wrt.write_open_tag(xml,0,"comunidades",'') - - for (guid, title, desc, owner_id, owner_name, owner_username, time)\ - in groups_info: - - write_groups_section(db,xml,\ - guid,title,desc,owner_id,owner_name,owner_username,time) - - wrt.write_close_tag(xml,0,"comunidades") - - groups_info.close() - - xml.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_multifile_groups_section (db, dir_results): - - groups_info = db.cursor() - groups_info.execute(qry.qry_groups_info) - - for (guid, title, desc, owner_id, owner_name, owner_username, time)\ - in groups_info: - - xml_filename=dir_results+'/groups/'+str(guid)+'.xml' - xml = wrt.open_xml_file(xml_filename) - - write_groups_section(db,xml,\ - guid,title,desc,owner_id,owner_name,owner_username,time) - - xml.close() - - groups_info.close() -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/xml/queries_definition.py b/lib/xml/queries_definition.py deleted file mode 100644 index f864bad205bda5f4de61ba4c661d3298631c9a8d..0000000000000000000000000000000000000000 --- a/lib/xml/queries_definition.py +++ /dev/null @@ -1,166 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -###################################################################### -# Users Section Query definitions: - -#--------------------------------------------------------------------# -# Argument: None -# Return: All member instances, and its info, from database. -qry_users_info = \ -(" SELECT u.guid, u.name, u.username \ - FROM elgg_entities e, elgg_users_entity u \ - WHERE e.guid = u.guid \ - AND (e.access_id = 1 OR e.access_id = 2); ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID / InfoType_ID -# Return: All InfoTypes' posts made by this group. -qry_user_posts = \ -(" SELECT o.guid, o.title, o.description, e.time_created \ - FROM elgg_entities e, elgg_objects_entity o \ - WHERE e.guid = o.guid \ - AND (e.access_id = 1 OR e.access_id = 2) \ - AND e.owner_guid = %s AND e.container_guid = %s AND e.subtype = %s \ - ORDER BY e.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: User_ID -# Return: All user friends' name -qry_user_friends = \ -(" SELECT u.guid, u.name, u.username \ - FROM elgg_users_entity u, elgg_entity_relationships r \ - WHERE u.guid = r.guid_two \ - AND r.guid_one = %s AND r.relationship = 'friend'; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: User_ID -# Return: Name of all the groups owned/created by the user. -qry_user_owngroups = \ -(" SELECT g.guid, g.name \ - FROM elgg_entities e, elgg_groups_entity g \ - WHERE e.guid = g.guid \ - AND e.owner_guid = %s AND e.container_guid = %s; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: User_ID -# Return: Name of all the groups that the user is a member. -qry_user_membergroups = \ -(" SELECT g.guid, g.name \ - FROM elgg_entity_relationships r, elgg_groups_entity g \ - WHERE r.guid_two = g.guid \ - AND r.relationship = 'member' AND r.guid_one = %s; ") -#--------------------------------------------------------------------# - -###################################################################### - -###################################################################### -# Group Section Query definitions: - -#--------------------------------------------------------------------# -# Argument: None -# Return: All group instances, and its info, from database. -qry_groups_info = \ -(" SELECT g.guid, g.name, g.description, \ - u.guid, u.name, u.username, e.time_created \ - FROM elgg_entities e, elgg_groups_entity g, elgg_users_entity u\ - WHERE e.guid = g.guid AND e.owner_guid = u.guid \ - AND (e.access_id = 1 OR e.access_id = 2) \ - ORDER BY e.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID / InfoType_ID -# Return: All InfoTypes' posts from this group. -qry_group_posts = \ -(" SELECT o.guid, o.title, o.description, \ - u.guid, u.name, u.username, e.time_created\ - FROM elgg_entities e, elgg_objects_entity o, elgg_users_entity u\ - WHERE e.guid = o.guid AND e.owner_guid = u.guid\ - AND (e.access_id = 1 OR e.access_id = 2) \ - AND e.container_guid = %s AND e.subtype = %s \ - ORDER BY e.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID -# Return: Flag containing the access control to become a group member -qry_group_access_permission = \ -(" SELECT CASE WHEN s.string = '2' THEN 'public' ELSE 'private' END \ - FROM elgg_metadata d, elgg_metastrings s \ - WHERE d.value_id = s.id \ - AND d.entity_guid = %s AND d.name_id = %s; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID / InfoType_ID -# Return: Yes or No, depending on the permission given by the owner. -qry_post_content_permission = \ -(" SELECT CASE WHEN s.string = 'yes' THEN 'Sim' ELSE 'Nao' END \ - FROM elgg_metadata d, elgg_metastrings s \ - WHERE d.value_id = s.id \ - AND d.entity_guid = %s AND d.name_id = %s;") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Group_ID -# Return: All members' name from this group. -qry_group_members = \ -(" SELECT u.guid, u.name, u.username \ - FROM elgg_users_entity u, elgg_entity_relationships r \ - WHERE u.guid = r.guid_one \ - AND r.relationship = 'member' AND r.guid_two = %s; ") -#--------------------------------------------------------------------# - -###################################################################### - -###################################################################### - -#--------------------------------------------------------------------# -# Argument: Post_ID -# Return: All comments, and its info, made on the post. -qry_post_comments = \ -(" SELECT u.guid, u.name, u.username, m.string, a.time_created \ - FROM elgg_annotations a, elgg_metastrings m, elgg_users_entity u \ - WHERE a.value_id = m.id AND a.owner_guid = u.guid \ - AND (a.access_id = 1 OR a.access_id = 2) \ - AND a.entity_guid = %s \ - ORDER BY a.time_created ASC; ") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -# Argument: Post_ID / InfoType_ID -# Return: Essential information about the group or post, such as -# blog's excerpts and bookmark's link -qry_post_content = \ -(" SELECT s.string\ - FROM elgg_metadata d, elgg_metastrings s \ - WHERE d.value_id = s.id \ - AND d.entity_guid = %s AND d.name_id = %s; ") -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/xml/user_section.py b/lib/xml/user_section.py deleted file mode 100644 index 914464970a13d2c7cb8cb8bb331077332189df84..0000000000000000000000000000000000000000 --- a/lib/xml/user_section.py +++ /dev/null @@ -1,377 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -import MySQLdb - -import queries_definition as qry -import write_support_functions as wrt - -###################################################################### -# Functions that write on XML file - -#--------------------------------------------------------------------# -def write_userfriends_subsection (db, xml, user_guid): - friends_info = db.cursor() - friends_info.execute(qry.qry_user_friends, (user_guid)) - - qty=str(friends_info.rowcount) - wrt.write_tag(xml,2,"quantidade_amigos",qty,'') - - wrt.write_open_tag(xml,2,"amigos",'') - for (friend_id, friend_name, friend_username) in friends_info: - prefix='profile/' - friend_attr=wrt.uidstr(wrt.urlparticipa(prefix,friend_username)) - wrt.write_tag(xml,3,"usuario",friend_name,friend_attr) - wrt.write_close_tag(xml,2,"amigos") - - friends_info.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -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: - prefix='groups/profile/' - group_attr=wrt.cidstr(wrt.urlparticipa(prefix,str(group_id))) - wrt.write_tag(xml,4,"comunidade",group_title,group_attr) - wrt.write_close_tag(xml,3,"dono") - - user_owngroups.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -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,"participante",'') - for (group_id, group_title) in user_membergroups: - prefix='groups/profile/' - group_attr=wrt.cidstr(wrt.urlparticipa(prefix,str(group_id))) - wrt.write_tag(xml,4,"comunidade",group_title,group_attr) - wrt.write_close_tag(xml,3,"participante") - - user_membergroups.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_usergroups_subsection (db, xml, user_guid): - 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") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userfiles_subsection (db, xml, user_guid): - user_files = db.cursor() - - # 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",'') - - for (post_guid, post_title, post_desc, time)\ - in user_files: - - 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_open_tag(xml,3,"arquivo",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") - - wrt.write_close_tag(xml,2,"arquivos") - - user_files.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userblogs_subsection (db, xml, user_guid): - user_blogs = db.cursor() - - # 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",'') - - for (post_guid, post_title, post_desc, time)\ - in user_blogs: - - post_excerpt = db.cursor() - - # 64 = select * from elgg_metastrings where string='excerpt'; - post_excerpt=wrt.post_content(db,post_guid,64) - - prefix='blog/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"blog",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") - - wrt.write_close_tag(xml,2,"blogs") - - user_blogs.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userbookmarks_subsection (db, xml, user_guid): - user_bookmarks = db.cursor() - - # 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",'') - - for (post_guid, post_title, post_desc, time)\ - in user_bookmarks: - - # 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_open_tag(xml,3,"favorito",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") - - wrt.write_close_tag(xml,2,"favoritos") - - user_bookmarks.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userpages_subsection (db, xml, user_guid): - user_pages = db.cursor() - - # 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",'') - - 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",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") - - wrt.write_close_tag(xml,2,"paginas") - - user_pages.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_uservideos_subsection (db, xml, user_guid): - user_videos = db.cursor() - - # 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",'') - - for (post_guid, post_title, post_desc, time)\ - in user_videos: - - # 477 = select * from elgg_metastrings where string='video_url'; - video_link=wrt.post_content(db, post_guid, 477) - - prefix='videos/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"video",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") - - wrt.write_close_tag(xml,2,"videos") - - user_videos.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_userevents_subsection (db, xml, user_guid): - user_events = db.cursor() - - # 6 = select * from elgg_entity_subtypes where subtype='calendar_event'; - user_events.execute(qry.qry_user_posts, (user_guid, user_guid, 6,)) - - - wrt.write_open_tag(xml,2,"eventos",'') - - for (post_guid, post_title, post_desc, time)\ - in user_events: - - # 18 = select * from elgg_metastrings where string='venue'; - venue=wrt.post_content(db, post_guid, 18) - - # 20 = select * from elgg_metastrings where string='start_date'; - time_start=wrt.post_content(db, post_guid, 20) - - # 22 = select * from elgg_metastrings where string='end_date'; - time_end=wrt.post_content(db, post_guid, 22) - - # 26 = select * from elgg_metastrings where string='fees'; - fees=wrt.post_content(db, post_guid, 26) - - # 28 = select * from elgg_metastrings where string='contact'; - contact=wrt.post_content(db, post_guid, 28) - - # 30 = select * from elgg_metastrings where string='organizer'; - organizer=wrt.post_content(db, post_guid, 30) - - prefix='event_calendar/view/' - post_attr=wrt.pidstr(wrt.urlparticipa(prefix,str(post_guid))) - wrt.write_open_tag(xml,3,"evento",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,"evento") - - wrt.write_close_tag(xml,2,"eventos") - - user_events.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_users_section (db, xml, \ - guid, name, username): - - prefix='profile/' - user_attr=wrt.uidstr(wrt.urlparticipa(prefix,username)) - wrt.write_open_tag(xml,1,"usuario",user_attr) - - # Write all user's information - wrt.write_tag(xml,2,"nome",name,'') - - # Write a list of user friend's names - write_userfriends_subsection(db, xml, guid) - - # Write a list of all groups that the user owns or belongs - write_usergroups_subsection(db, xml, guid) - - # Write a list, and all the info, of all posts made by the user - write_userfiles_subsection(db, xml, guid) - write_userblogs_subsection(db, xml, guid) - write_userbookmarks_subsection(db, xml, guid) - write_userpages_subsection(db, xml, guid) - write_uservideos_subsection(db, xml, guid) - write_userevents_subsection(db, xml, guid) - - wrt.write_close_tag(xml,1,"usuario") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_singlefile_users_section (db, dir_results): - - users_info = db.cursor() - users_info.execute(qry.qry_users_info) - - xml_filename=dir_results+wrt.date_today()+"_usuarios"+".xml" - xml = wrt.open_xml_file(xml_filename) - - wrt.write_open_tag(xml,0,"usuarios",'') - - for (guid, name, username)\ - in users_info: - - write_users_section(db,xml,\ - guid,name,username) - - wrt.write_close_tag(xml,0,"usuarios") - - users_info.close() - - xml.close() -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_multifile_users_section (db, dir_results): - - users_info = db.cursor() - users_info.execute(qry.qry_users_info) - - for (guid, name, username)\ - in users_info: - - xml_filename=dir_results+'/users/'+str(guid)+'.xml' - xml = wrt.open_xml_file(xml_filename) - - write_users_section(db,xml,\ - guid,name,username) - - xml.close() - - users_info.close() -#--------------------------------------------------------------------# - -###################################################################### diff --git a/lib/xml/write_support_functions.py b/lib/xml/write_support_functions.py deleted file mode 100644 index 0e9d412159085740534eb61298a5f3d7c479459c..0000000000000000000000000000000000000000 --- a/lib/xml/write_support_functions.py +++ /dev/null @@ -1,219 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2004-2008 Centro de Computacao Cientifica e Software Livre -# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR -# -# This file is part of participatorio/opendata -# -# participatorio/opendata is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -import MySQLdb -import codecs -import datetime - -import queries_definition as qry - -###################################################################### -# Support functions: - -#--------------------------------------------------------------------# -def open_xml_file (xml_filename): - xml_file = codecs.open(xml_filename,'w',encoding='utf-8') - xml_file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") - return xml_file -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def date_today(): - date = str(datetime.date.today()) - return date -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def lvl (l): - if l == 1: - return "\t" - elif l == 2: - return "\t\t" - elif l == 3: - return "\t\t\t" - elif l == 4: - return "\t\t\t\t" - elif l == 5: - return "\t\t\t\t\t" - elif l == 6: - return "\t\t\t\t\t\t" - elif l == 7: - return "\t\t\t\t\t\t\t" - else: - return "" -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def cdata (string): - cdata_string="<![CDATA["+string+"]]>" - return cdata_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def uidstr (guid): - uid_string=" uid="+"\""+guid+"\"" - return uid_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def cidstr (guid): - uid_string=" cid="+"\""+guid+"\"" - return uid_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def pidstr (guid): - pid_string=" pid="+"\""+guid+"\"" - return pid_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def permstr (perm): - perm_string=" habilitado="+"\""+str(perm)+"\"" - return perm_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def qtystr (quantity): - qty_string=" quantidade="+"\""+str(quantity)+"\"" - return qty_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def urlparticipa (prefix, guid): - http_str="http://participatorio.juventude.gov.br/" - url_participa=http_str+prefix+guid - return url_participa -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def hrefstr (url): - href_string=" href="+"\""+url+"\"" - return href_string -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def datestr (time): - if time != '': - date=str(datetime.datetime.fromtimestamp(int(time))) - else: - date='' - return date -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def post_content (db, post_guid, content_typeid): - content = db.cursor() - content.execute(qry.qry_post_content, (post_guid, content_typeid,)) - if content.rowcount == 1: - post_content = content.fetchone()[0] - else: - post_content='' - print "ERRO! Nenhum ou Mais do que um resultado para a query" - - content.close() - - return post_content -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def postcontent_permission (db, group_guid, content_id): - - perm = db.cursor() - perm.execute(qry.qry_post_content_permission, (group_guid, content_id,)) - - if perm.rowcount == 1: - permission=perm.fetchone()[0] - else: - permission='' - print "ERRO! Nenhum ou Mais do que um resultado para a query" - - perm.close() - - return permission -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def groupaccess_permission (db, group_guid): - - access = db.cursor() - - # 55 = select * from elgg_metastrings where string = 'membership'; - access.execute(qry.qry_group_access_permission, (group_guid, 55,)) - - if access.rowcount == 1: - access_control=access.fetchone()[0] - else: - access_control='' - print "ERRO! Nenhum ou Mais do que um resultado para a query" - - access.close() - - return access_control -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_open_tag (xml, l, tag_name, attr_str): - xml.write(lvl(l)+"<"+tag_name+attr_str+">"+"\n") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_close_tag (xml, l, tag_name): - xml.write(lvl(l)+"</"+tag_name+">"+"\n") -#--------------------------------------------------------------------# - -#--------------------------------------------------------------------# -def write_tag (xml, l, tag_name, info_str, attr_str): - level=lvl(l) - if len(info_str) > 0: - tag_begin=("<"+tag_name+attr_str+">") - tag_end=("</"+tag_name+">") - xml.write(level+tag_begin+info_str+tag_end+"\n") - else: - xml.write(level+"<"+tag_name+attr_str+"/>"+"\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: - - write_open_tag(xml,5,"comentario",'') - - prefix='profile/' - user_attr=uidstr(urlparticipa(prefix,user_username)) - write_tag(xml,6,"usuario",user_name,user_attr) - write_tag(xml,6,"data",datestr(time),'') - write_tag(xml,6,"mensagem",cdata(string),'') - - write_close_tag(xml,5,"comentario") - - write_close_tag(xml,4,"comentarios") - - post_comments.close() -#--------------------------------------------------------------------# - -######################################################################