def do_pop3(self, line):
     arg = self.arg_tokenize(line)
     if len(arg) < 1 :
         printerr("pop3 MLname")
     db = self.db_open()
     self.env = self.env_open()
     self._import_from_pop3('cmd', db, arg[0])
 def handleMail(self, mail):
     # handle the message
     handlers = ExtensionPoint(IEmailHandler).extensions(self.env)
     
     handlers.sort(key=lambda x: x.order(), reverse=True)
     warnings = []
     for handler in handlers:
         try:
             message = handler.invoke(mail, warnings)
         except Exception, e:
             traceback.print_exc(e)
             printerr(_('Handler Error. Subject: %s\n\n%s' % (str(mail.subject), str(e))))
 def do_help(self, line=None):
     arg = self.arg_tokenize(line)
     if arg[0]:
         try:
             doc = getattr(self, "_help_" + arg[0])
             self.print_doc (doc)
         except AttributeError:
             printerr(_("No documentation found for '%(cmd)s'", cmd=arg[0]))
     else:
         printout(_("mailarc-admin - The Trac MailArchivePlugin Administration Console "
                    "%(version)s", version=PLUGIN_VERSION))
         if not self.interactive:
             print
             printout(_("Usage: mailarc-admin </path/to/projenv> "
                        "[command [subcommand] [option ...]]\n")
                 )
         self.print_doc(self.all_docs())
    def _import_from_pop3(self, author, db, mlid):

        pop_server = self.env.config.get('mailarchive', 'pop3_server_' + mlid)
        if pop_server =='':
            pop_server = self.env.config.get('mailarchive', 'pop3_server')

        pop_user = self.env.config.get('mailarchive', 'pop3_user_' + mlid)
        if pop_user =='':
            pop_user = self.env.config.get('mailarchive', 'pop3_user')

        pop_password = self.env.config.get('mailarchive', 'pop3_password_' + mlid)
        if pop_password =='':
            pop_password = self.env.config.get('mailarchive', 'pop3_password')

        pop_delete = self.env.config.get('mailarchive', 'pop3_delete_' + mlid)
        if pop_delete =='':
            pop_delete = self.env.config.get('mailarchive', 'pop3_delete','none')
            
            
        #for POP SSL. Thanks! http://hidamarinonaka.jugem.cc/?eid=140
        pop_ssl = self.env.config.get('mailarchive', 'pop3_ssl_' + mlid)
        if pop_ssl == '':
            pop_ssl = self.env.config.get('mailarchive', 'pop3_ssl' + mlid, 'no')


        if pop_server =='':
            printerr(_('trac.ini mailarchive pop3_server is null!'))
        elif pop_user == '':
            printerr(_('trac.ini mailarchive pop3_user is null!'))
        elif pop_password == '':
            printerr(_('trac.ini mailarchive pop3_password is null!'))

        printout(_("%(time)s Start Connction pop3 %(server)s:%(user)s ...",
                    time=time.strftime("%Y/%m/%d %H:%M:%S", time.gmtime()),
                    server=pop_server,
                    user=pop_user))

        pop = None
        if pop_ssl == 'yes':
            printout(_('POP3_SSL access...'))
            pop = poplib.POP3_SSL(pop_server)
        elif pop_ssl == 'no':
            printout(_('POP3 access...'))
            pop = poplib.POP3(pop_server)
        else:
            printerr(_('trac.ini mailarchive pop3_ssl isn\'t yes/no!'))

        pop.user(pop_user)
        pop.pass_(pop_password)
        num_messages = len(pop.list()[1])
        counter = 1
        for i in range(num_messages):
            #lines = ['',]
            #for j in pop.retr(i+1)[1]:
            #    lines.append(j + os.linesep)
            #mes_text = ''.join(lines)
            mes_text = ''.join(['%s\n' % line for line in  pop.retr(i+1)[1]])
            messageid = ''
            exception_flag = False
            msg = ''
            try:
                msg = email.message_from_string(mes_text)
                self.import_message(msg, author, mlid, db)
            except Exception, e:
                traceback.print_exc(e)
                exception_flag = True
                self.print_import_error(msg)

            # delete mail
            if pop_delete == 'all':
                pop.dele(i+1)
                printout(_("    Delete MailServer Message"))
            elif pop_delete == 'imported':
                if exception_flag == False:
                    pop.dele(i+1)
                    printout(_("    Delete MailServer Message"))
            else:
                pass

            if counter > 10000:
                break
            counter = counter + 1
Example #5
0
            # concatenate dep list
            concat_files(dep_list, tempf)
            tempf.close()


            if options.output_mode == "minified":
                minifier = getattr(minifiers, options.minifier)
                if options.cli_args:
                    minify_args = minifier.get_minify_args(tfp,
                            output_file=options.output_file, cli_args=options.cli_args)
                else:
                    minify_args = minifier.get_minify_args(tfp,
                            output_file=options.output_file)

                printerr("Executing: %s" % " ".join(minify_args))
                call(minify_args)
                os.remove(tfp)
            else:
                if options.output_file:
                    os.rename(tfp, options.output_file)
                    printerr("Created the file: %s" % options.output_file)
                else:
                    tempf = open(temp_file[1], "r")
                    for line in tempf:
                        sys.stdout.write(line)
                    tempf.close()
                    os.remove(tfp)

            tfp = None