~michael.nelson/software-center/833982-previous-purchase-no-feedback-2

« back to all changes in this revision

Viewing changes to utils/submit_review_gtk3.py

  • Committer: Michael Nelson
  • Date: 2012-01-17 09:26:22 UTC
  • mfrom: (2653.2.4 software-center)
  • Revision ID: michael.nelson@canonical.com-20120117092622-obj519f7fmi5zu1j
Merged trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
# -*- coding: utf-8 -*-
 
3
 
 
4
# Copyright (C) 2009 Canonical
 
5
#
 
6
# Authors:
 
7
#  Michael Vogt
 
8
#
 
9
# This program is free software; you can redistribute it and/or modify it under
 
10
# the terms of the GNU General Public License as published by the Free Software
 
11
# Foundation; version 3.
 
12
#
 
13
# This program is distributed in the hope that it will be useful, but WITHOUT
 
14
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 
15
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 
16
# details.
 
17
#
 
18
# You should have received a copy of the GNU General Public License along with
 
19
# this program; if not, write to the Free Software Foundation, Inc.,
 
20
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
21
 
 
22
from gi.repository import Gtk
 
23
 
 
24
import gettext
 
25
import locale
 
26
import logging
 
27
import logging.handlers
 
28
import os
 
29
import sys
 
30
 
 
31
from gettext import gettext as _
 
32
from optparse import OptionParser
 
33
 
 
34
from softwarecenter.paths import SOFTWARE_CENTER_CACHE_DIR
 
35
from softwarecenter.db.database import Application
 
36
 
 
37
from softwarecenter.backend.reviews.rnr_helpers import (
 
38
    DeleteReviewApp,
 
39
    ReportReviewApp,
 
40
    SubmitReviewsApp,
 
41
    SubmitUsefulnessApp,
 
42
    )
 
43
 
 
44
#import httplib2
 
45
#httplib2.debuglevel = 1
 
46
 
 
47
 
 
48
if __name__ == "__main__":
 
49
    try:
 
50
        locale.setlocale(locale.LC_ALL, "")
 
51
    except:
 
52
        logging.exception("setlocale failed, resetting to C")
 
53
        locale.setlocale(locale.LC_ALL, "C")
 
54
 
 
55
    gettext.bindtextdomain("software-center", "/usr/share/locale")
 
56
    gettext.textdomain("software-center")
 
57
 
 
58
    if os.path.exists("./data/ui/gtk3/submit_review.ui"):
 
59
        default_datadir = "./data"
 
60
    else:
 
61
        default_datadir = "/usr/share/software-center/"
 
62
 
 
63
    # common options for optparse go here
 
64
    parser = OptionParser()
 
65
    parser.add_option("", "--datadir", default=default_datadir)
 
66
 
 
67
    logfile_path = os.path.join(SOFTWARE_CENTER_CACHE_DIR, "reviews-helper.log")
 
68
    logfile_handler = logging.handlers.RotatingFileHandler(logfile_path,
 
69
                                                           maxBytes=100*1000,
 
70
                                                           backupCount=5)
 
71
    logfile_handler.setLevel(logging.INFO)
 
72
    logging.getLogger().addHandler(logfile_handler)
 
73
 
 
74
    # run review personality
 
75
    if "submit_review" in sys.argv[0]:
 
76
        # check options
 
77
        parser.add_option("-a", "--appname")
 
78
        parser.add_option("-p", "--pkgname")
 
79
        parser.add_option("-i", "--iconname")
 
80
        parser.add_option("-V", "--version")
 
81
        parser.add_option("-O", "--origin")
 
82
        parser.add_option("", "--parent-xid")
 
83
        parser.add_option("", "--test", action="store_true", default=False)
 
84
        parser.add_option("", "--debug",
 
85
                          action="store_true", default=False)
 
86
        (options, args) = parser.parse_args()
 
87
 
 
88
        if options.test:
 
89
            options.pkgname = options.pkgname or 'apt'
 
90
            options.appname = options.appname or 'Apt'
 
91
            options.iconname = options.iconname or 'folder'
 
92
            options.version = options.version or '1.0'
 
93
            options.origin = options.origin or 'Ubuntu'
 
94
            options.parent_xid = options.parent_xid or '1'
 
95
 
 
96
        if not (options.pkgname and options.version):
 
97
            parser.error(_("Missing arguments"))
 
98
    
 
99
        if options.debug:
 
100
            logging.basicConfig(level=logging.DEBUG)                        
 
101
 
 
102
        # personality
 
103
        logging.debug("submit_review mode")
 
104
 
 
105
        # initialize and run
 
106
        theapp = Application(options.appname, options.pkgname)
 
107
        review_app = SubmitReviewsApp(datadir=options.datadir,
 
108
                                      app=theapp, 
 
109
                                      parent_xid=options.parent_xid,
 
110
                                      iconname=options.iconname,
 
111
                                      origin=options.origin,
 
112
                                      version=options.version)
 
113
        review_app.run()
 
114
 
 
115
 
 
116
    # run "report" personality
 
117
    if "report_review" in sys.argv[0]:
 
118
        # check options
 
119
        parser.add_option("", "--review-id") 
 
120
        parser.add_option("", "--parent-xid")
 
121
        parser.add_option("", "--debug",
 
122
                          action="store_true", default=False)
 
123
        (options, args) = parser.parse_args()
 
124
 
 
125
        if not (options.review_id):
 
126
            parser.error(_("Missing review-id arguments"))
 
127
    
 
128
        if options.debug:
 
129
            logging.basicConfig(level=logging.DEBUG)                        
 
130
 
 
131
        # personality
 
132
        logging.debug("report_abuse mode")
 
133
 
 
134
        # initialize and run
 
135
        report_app = ReportReviewApp(datadir=options.datadir,
 
136
                                      review_id=options.review_id, 
 
137
                                      parent_xid=options.parent_xid)
 
138
        report_app.run()
 
139
 
 
140
    if "submit_usefulness" in sys.argv[0]:
 
141
        # check options
 
142
        parser.add_option("", "--review-id") 
 
143
        parser.add_option("", "--parent-xid")
 
144
        parser.add_option("", "--is-useful")
 
145
        parser.add_option("", "--debug",
 
146
                          action="store_true", default=False)
 
147
        (options, args) = parser.parse_args()
 
148
 
 
149
        if not (options.review_id):
 
150
            parser.error(_("Missing review-id arguments"))
 
151
    
 
152
        if options.debug:
 
153
            logging.basicConfig(level=logging.DEBUG)                        
 
154
 
 
155
        # personality
 
156
        logging.debug("report_abuse mode")
 
157
 
 
158
        # initialize and run
 
159
        usefulness_app = SubmitUsefulnessApp(datadir=options.datadir,
 
160
                                         review_id=options.review_id, 
 
161
                                         parent_xid=options.parent_xid,
 
162
                                         is_useful=int(options.is_useful))
 
163
        usefulness_app.run()
 
164
    
 
165
    if "delete_review" in sys.argv[0]:
 
166
        #check options
 
167
        parser.add_option("", "--review-id")
 
168
        parser.add_option("", "--parent-xid")
 
169
        parser.add_option("", "--debug",
 
170
                          action="store_true", default=False)
 
171
        (options, args) = parser.parse_args()
 
172
        
 
173
        if not (options.review_id):
 
174
            parser.error(_("Missing review-id argument"))
 
175
    
 
176
        if options.debug:
 
177
            logging.basicConfig(level=logging.DEBUG)
 
178
        
 
179
        logging.debug("delete review mode")
 
180
        
 
181
        delete_app = DeleteReviewApp(datadir=options.datadir,
 
182
                                    review_id=options.review_id,
 
183
                                    parent_xid=options.parent_xid)
 
184
        delete_app.run()
 
185
 
 
186
    if "modify_review" in sys.argv[0]:
 
187
        # check options
 
188
        parser.add_option("", "--review-id")
 
189
        parser.add_option("-i", "--iconname")
 
190
        parser.add_option("", "--parent-xid")
 
191
        parser.add_option("", "--debug",
 
192
                          action="store_true", default=False)
 
193
        (options, args) = parser.parse_args()
 
194
 
 
195
        if not (options.review_id):
 
196
            parser.error(_("Missing review-id argument"))
 
197
    
 
198
        if options.debug:
 
199
            logging.basicConfig(level=logging.DEBUG)
 
200
 
 
201
        # personality
 
202
        logging.debug("modify_review mode")
 
203
 
 
204
        # initialize and run
 
205
        modify_app = SubmitReviewsApp(datadir=options.datadir,
 
206
                                      app=None, 
 
207
                                      parent_xid=options.parent_xid,
 
208
                                      iconname=options.iconname,
 
209
                                      origin=None,
 
210
                                      version=None,
 
211
                                    action="modify",
 
212
                                    review_id=options.review_id
 
213
                                    )
 
214
 
 
215
        modify_app.run()
 
216
        
 
217
    # main
 
218
    Gtk.main()