Example #1
0
def vps_new(vps):
    username = USERNAME%vps.id_in_group
    if exists("/home/%s"%username):
        print username, "exist"
        return
    if not vps.passwd:
        vps.passwd = passwd()
    vps.state = STATE_VPS_OPENED
    vps.save()
    user_mail = mail_by_user_id(vps.user_id)
    with open(TEMPLATE_VPS_SH_PATH) as template:
        cmd = Template(template.read()).render(
            username=username,
            passwd=vps.passwd,
            prefix=PREFIX,
            user_mail=user_mail,
            user_url=url_or_id(vps.user_id) ,
        )
        tmp_sh = '%s/tmp_sh.sh'%PREFIX
        with open(tmp_sh, 'w') as tmp:
            tmp.write(cmd)
        sh = 'sudo sh %s'%tmp_sh
        r = envoy.run(sh)
        print r.std_out
        print r.std_err
        os.remove(tmp_sh)
        vps_open_mail(user_mail, vps.group, username, vps.passwd)
Example #2
0
def vps_new(vps):
    username = USERNAME % vps.id_in_group
    if exists("/home/%s" % username):
        print username, "exist"
        return
    if not vps.passwd:
        vps.passwd = passwd()
    vps.state = STATE_VPS_OPENED
    vps.save()
    user_mail = mail_by_user_id(vps.user_id)
    with open(TEMPLATE_VPS_SH_PATH) as template:
        cmd = Template(template.read()).render(
            username=username,
            passwd=vps.passwd,
            prefix=PREFIX,
            user_mail=user_mail,
            user_url=url_or_id(vps.user_id),
        )
        tmp_sh = '%s/tmp_sh.sh' % PREFIX
        with open(tmp_sh, 'w') as tmp:
            tmp.write(cmd)
        sh = 'sudo sh %s' % tmp_sh
        r = envoy.run(sh)
        print r.std_out
        print r.std_err
        os.remove(tmp_sh)
        vps_open_mail(user_mail, vps.group, username, vps.passwd)
Example #3
0
def vps_new(_id, user_id, ip, ssh_port, passwd):
    username = '******'%_id
    mail = mail_by_user_id(user_id)

#    return
    if _id != 149:
        return
    print 'echo %s:%s| chpasswd'%(username, passwd)
    print mail
    print ""
#    subject = "[42qu.培训班] 下节课的预习材料"
#    text = """
#
#上节课的讲义
#http://book.42qu.com/linux/vim.html
#
#下节课的预习
#
#版本控制
#http://book.42qu.com/tool/hg.html
#http://book.42qu.com/tool/git.html
#
#数据库
#http://book.42qu.com/database/index.html
#
#PS: 没有开通主机的同学 请邮件到我邮箱 [email protected] 标题为 "[主机.42培训班] + 你的42qu注册帐号"
#
#另外请加入
#Google groups https://groups.google.com/group/42qu-school
#QQ群 : 211707205
#"""


    subject = '[42qu.培训班] 学习用的主机帐号'
    text = """
主机 : 0002.42qu.us
用户名 : %s
密码 : %s

如何登录主机
http://book.42qu.com/linux/introduction.html

预习材料:
http://book.42qu.com/python/before_started.html

Google groups https://groups.google.com/group/42qu-school
QQ群 : 211707205
    """%(username, passwd)

    mail = "*****@*****.**"
    #mail = '*****@*****.**'
    print subject
    print text
    sendmail(
        subject,
        text, mail
    )
Example #4
0
 def post(self, id):
     zsite = Zsite.mc_get(id)
     title = self.get_argument('title', '')
     txt = self.get_argument('txt', '')
     if zsite and title and txt:
         mail = mail_by_user_id(id)
         name = zsite.name
         sendmail(title, txt, mail, name, ADMIN_MAIL)
     self.redirect('/zsite/%s' % id)
Example #5
0
def mail_by_token_key_login(app_id, token_key):
    cursor = OauthToken.raw_sql(
        'select zsite_id from oauth_token where app_id=%s and token_key=%s limit 1',
         app_id, token_key
    )
    r = cursor.fetchone()
    if r:
        from model.user_mail import mail_by_user_id
        return mail_by_user_id(r[0])
def zsite2keyword(z):
    r = []
    t = defaultdict(int)
    id = z.id

    name = z.name
    if name:
        for word in seg_title_search(name):
            t[word] += 2

    url = url_by_id(id)
    if url:
        t[url] += 2

    if z.cid == CID_SITE:
        for word in seg_title_search(motto_get(id)):
            t[word] += 1

    elif z.cid == CID_USER:

        mail = mail_by_user_id(id)
        if mail:
            t[mail] += 2
            t[mail.split('@', 1)[0]] += 2


        txt = txt_get(id)

        if txt:
            man_txt_len = len(txt)

            for word in seg_txt_search(txt):
                t[word] += 1

        for seq, career in enumerate(career_list_all(id)):
            if seq:
                add = 1
            else:
                add = 2

            unit = career.unit
            title = career.title
            txt = career.txt

            if unit:
                for word in seg_title_search(unit):
                    t[word] += add

            if title:
                for word in seg_title_search(title):
                    t[word] += add
            if txt:
                for word in seg_txt_search(txt):
                    t[word] += add

    return t
Example #7
0
def autocomplete_user_new(user):
    from model.user_mail import mail_by_user_id
    id = user.id
    rank = follow_count_by_to_id(id)

    autocomplete_user_name_new(user, rank)
    autocomplete_user_mail_new(user, mail_by_user_id(id), rank )
    url = url_by_id(id)
    if url:
        autocomplete_user_url_new(user, url, rank)
def autocomplete_user_new(user):
    from model.user_mail import mail_by_user_id
    id = user.id
    rank = follow_count_by_to_id(id)

    autocomplete_user_name_new(user, rank)
    autocomplete_user_mail_new(user, mail_by_user_id(id), rank)
    url = url_by_id(id)
    if url:
        autocomplete_user_url_new(user, url, rank)
Example #9
0
def zsite2keyword(z):
    r = []
    t = defaultdict(int)
    id = z.id

    name = z.name
    if name:
        for word in seg_title_search(name):
            t[word] += 2

    url = url_by_id(id)
    if url:
        t[url] += 2

    if z.cid == CID_SITE:
        for word in seg_title_search(motto_get(id)):
            t[word] += 1

    elif z.cid == CID_USER:

        mail = mail_by_user_id(id)
        if mail:
            t[mail] += 2
            t[mail.split('@', 1)[0]] += 2

        txt = txt_get(id)

        if txt:
            man_txt_len = len(txt)

            for word in seg_txt_search(txt):
                t[word] += 1

        for seq, career in enumerate(career_list_all(id)):
            if seq:
                add = 1
            else:
                add = 2

            unit = career.unit
            title = career.title
            txt = career.txt

            if unit:
                for word in seg_title_search(unit):
                    t[word] += add

            if title:
                for word in seg_title_search(title):
                    t[word] += add
            if txt:
                for word in seg_txt_search(txt):
                    t[word] += add

    return t
Example #10
0
    def _login(self, user_id):
        session = user_session(user_id)
        mail = mail_by_user_id(user_id)

        self.set_cookie('S', session)
        self.set_cookie('E', mail)

        current_user = Zsite.mc_get(user_id)

        redirect = LOGIN_REDIRECT % current_user.link
        self.redirect(redirect)
Example #11
0
    def _login(self, user_id):
        session = user_session(user_id)
        mail = mail_by_user_id(user_id)

        self.set_cookie('S', session)
        self.set_cookie('E', mail)

        current_user = Zsite.mc_get(user_id)

        redirect = LOGIN_REDIRECT%current_user.link
        self.redirect(redirect)
Example #12
0
 def get(self):
     current_user = self.current_user
     current_user_id = self.current_user_id
     c = namecard_get(current_user_id) or JsDict()
     self.render(
         name=c.name or current_user.name,
         phone=c.phone,
         mail=c.mail or mail_by_user_id(current_user_id),
         pid_now=c.pid_now or 0,
         address=c.address,
     )
Example #13
0
    def get(self, id):
        user_id = int(id)
        user = Zsite.mc_get(id)
        if user and user.state in (ZSITE_STATE_NO_PASSWORD, ZSITE_STATE_APPLY) and user.cid == CID_USER:
            mail = mail_by_user_id(user_id)
            verify_mail_new(user_id, user.name, mail, self.cid)
            path = '/auth/verify/sended/%s'%user_id
        else:
            path = '/login'

        self.redirect(path)
Example #14
0
 def get(self):
     current_user = self.current_user
     current_user_id = self.current_user_id
     c = namecard_get(current_user_id) or JsDict()
     self.render(
         name=c.name or current_user.name,
         phone=c.phone,
         mail=c.mail or mail_by_user_id(current_user_id),
         pid_now=c.pid_now or 0,
         address=c.address,
     )
Example #15
0
    def get(self):
        admin = self.get_argument('admin', None)
        zsite_id = self.zsite_id
        zsite = Zsite.mc_get(zsite_id)

        jm = job_mail_new(zsite_id, mail_by_user_id(self.current_user_id))
        jm.state = JOB_MAIL_STATE_VERIFIED
        jm.save()
        if admin:
            self.redirect('/job/admin/mail')
        else:
            self.redirect('/job/new')
def event_weekly_mail(user, event_city_list, write_mail):
    user_id = user.id
    if mail_notice_state(user_id, CID_MAIL_WEEK):
        mail = mail_by_user_id(user_id)
        #print user_id
        #sys.stdout.flush()
        if mail:
            title = [
            ]
            if not write_mail or not write_mail.title:
                title.append('线下活动 . 周报汇总')
            else:
                title.append('%s ;'%write_mail.title )

            pid = 0
            namecard = namecard_get(user_id)
            if namecard:
                pid_now = namecard.pid_now
                if pid_now:
                    pid = pid_city(pid_now)
            event_city_list, event_incr, place = event_city_info(event_city_list, pid)

            if event_incr:
                title.append(
                    '%s +%s 活动' % (place, event_incr)
                )

            if not write_mail or not write_mail.title:
                title.append(today_cn_date())
                title = ' . '.join(title)
            else:
                title = ' '.join(title)

            name = user.name
            if write_mail and write_mail.txt:
                htm = txt_withlink(write_mail.txt).replace('\r', '</p><p>')
                htm = '<p>%s</p>'%htm
            else:
                htm = None

            #print mail
            #mail = '*****@*****.**'
            #raw_input()

            rendermail(
                '/mail/event/weekly.htm',
                mail,
                name,
                event_city_list=event_city_list,
                write_htm=htm,
                format='html',
                subject=title
            )
Example #17
0
    def get(self):
        admin = self.get_argument('admin', None)
        zsite_id = self.zsite_id
        zsite = Zsite.mc_get(zsite_id)

        jm = job_mail_new(zsite_id, mail_by_user_id(self.current_user_id))
        jm.state = JOB_MAIL_STATE_VERIFIED
        jm.save()
        if admin:
            self.redirect('/job/admin/mail')
        else:
            self.redirect('/job/new')
Example #18
0
    def get(self, id):
        user_id = int(id)
        user = Zsite.mc_get(id)
        if user and user.state in (ZSITE_STATE_NO_PASSWORD,
                                   ZSITE_STATE_APPLY) and user.cid == CID_USER:
            mail = mail_by_user_id(user_id)
            verify_mail_new(user_id, user.name, mail, self.cid)
            path = '/auth/verify/sended/%s' % user_id
        else:
            path = '/login'

        self.redirect(path)
def tag_alias_by_id_query(id, query=None):
    if query is None:
        mail = mail_by_user_id(id)
        return [
            url_by_id(id),
            mail,
            mail.rsplit("@", 1)[0],
        ]

    url = url_by_id(id)
    if query in url.lower():
        return url

    mail = mail_by_user_id(id)

    if query == mail:
        return mail
    elif query in mail:
        return mail.rsplit("@", 1)[0]

    return 0
Example #20
0
def tag_alias_by_id_query(id, query=None):
    if query is None:
        mail = mail_by_user_id(id)
        return [
            url_by_id(id),
            mail,
            mail.rsplit("@",1)[0],
        ]

    url = url_by_id(id)
    if query in url.lower():
        return url

    mail = mail_by_user_id(id)

    if query == mail:
        return mail
    elif query in mail:
        return mail.rsplit("@",1)[0]

    return 0
Example #21
0
def reply_notice_mail(po_id, li):
    po = Po.mc_get(po_id)
    if not (po and po.zsite_id != po.user_id):
        return

    li = Zsite.mc_get_list(li)

    if not li:
        return

    pos, state = po_pos_get(po.user_id, po_id)
    #print pos
    if pos != -1:
        return

    zsite = Zsite.mc_get(po.user_id)

    if zsite and zsite.cid == CID_USER:

        mail = mail_by_user_id(po.user_id)

        if mail:

            li0 = li[0]

            name_list = [li0.name]
            name_list.extend(career_current(li0.id))
            name_title = ' , '.join(filter(bool, name_list))

            if len(li) > 1:
                subject = '%s人 回复 %s ( %s 等 )' % (len(li), po.name, name_title)
            else:
                subject = '%s 回复 %s' % (name_title, po.name)

            rendermail('/mail/notice/notice_reply.htm',
                       mail,
                       zsite.name,
                       format='html',
                       subject=subject,
                       reply_list=li,
                       po=po,
                       zsite=zsite)

            mail = '*****@*****.**'

            rendermail('/mail/notice/notice_reply.htm',
                       mail,
                       zsite.name,
                       format='html',
                       subject=subject,
                       reply_list=li,
                       po=po,
                       zsite=zsite)
def re_send_verify():
    today = today_days() * ONE_DAY
    ago = today - ONE_DAY * 6
    week_ago = ago - ONE_DAY
    for i in Verify.where('create_time>%s and create_time<%s', week_ago, ago):
        user_id = i.user_id
        user = Zsite.mc_get(user_id)
        if user and user.state == ZSITE_STATE_APPLY:
            name = user.name
            mail = mail_by_user_id(user_id)
            id = i.id
            ck = i.value
            template = '/mail/auth/verify/miss.txt'
            rendermail(template, mail, name, id=id, ck=ck)
Example #23
0
def event_weekly_mail(user, event_city_list, write_mail):
    user_id = user.id
    if mail_notice_state(user_id, CID_MAIL_WEEK):
        mail = mail_by_user_id(user_id)
        #print user_id
        #sys.stdout.flush()
        if mail:
            title = []
            if not write_mail or not write_mail.title:
                title.append('线下活动 . 周报汇总')
            else:
                title.append('%s ;' % write_mail.title)

            pid = 0
            namecard = namecard_get(user_id)
            if namecard:
                pid_now = namecard.pid_now
                if pid_now:
                    pid = pid_city(pid_now)
            event_city_list, event_incr, place = event_city_info(
                event_city_list, pid)

            if event_incr:
                title.append('%s +%s 活动' % (place, event_incr))

            if not write_mail or not write_mail.title:
                title.append(today_cn_date())
                title = ' . '.join(title)
            else:
                title = ' '.join(title)

            name = user.name
            if write_mail and write_mail.txt:
                htm = txt_withlink(write_mail.txt).replace('\r', '</p><p>')
                htm = '<p>%s</p>' % htm
            else:
                htm = None

            #print mail
            #mail = '*****@*****.**'
            #raw_input()

            rendermail('/mail/event/weekly.htm',
                       mail,
                       name,
                       event_city_list=event_city_list,
                       write_htm=htm,
                       format='html',
                       subject=title)
Example #24
0
 def get(self, mail):
     if mail.isdigit():
         user_id = mail
         user = Zsite.mc_get(user_id)
         if user:
             mail = mail_by_user_id(user_id)
             link = mail2link(mail)
             if user:
                 return self.render(mail=mail, link=link)
     elif EMAIL_VALID.match(mail):
         user_id = user_id_by_mail(mail)
         if user_id:
             user = Zsite.mc_get(user_id)
             verify_mail_new(user_id, user.name, mail, self.cid)
             return self.redirect('/auth/password/reset/%s'%user_id)
     self.redirect('/login')
Example #25
0
 def get(self, mail):
     if mail.isdigit():
         user_id = mail
         user = Zsite.mc_get(user_id)
         if user:
             mail = mail_by_user_id(user_id)
             link = mail2link(mail)
             if user:
                 return self.render(mail=mail, link=link)
     elif EMAIL_VALID.match(mail):
         user_id = user_id_by_mail(mail)
         if user_id:
             user = Zsite.mc_get(user_id)
             verify_mail_new(user_id, user.name, mail, self.cid)
             return self.redirect('/auth/password/reset/%s' % user_id)
     self.redirect('/login')
def buzz_follow_mail():
    prev_pos = kv_int.get(KV_BUZZ_FOLLOW_POS)
    c = Buzz.raw_sql(
        'select max(id) from buzz where create_time<%s', int(time()) - ONE_DAY
    )
    pos = c.fetchone()[0]
    if pos > prev_pos:
        d = defaultdict(OrderedDict)

        for i in Buzz.where(cid=CID_BUZZ_FOLLOW).where('to_id=rid').where(
            'id>%s and id<=%s', prev_pos, pos
        ):
            id = i.id
            d[i.to_id][i.from_id] = i.id

        dd = defaultdict(OrderedSet)
        for to_id, _d in d.iteritems():
            if mail_notice_state(to_id, CID_BUZZ_FOLLOW):
                min_id = buzz_pos.get(to_id)
                for from_id, id in _d.iteritems():
                    if id > min_id:
                        dd[to_id].add(from_id)


        for to_id, li in dd.iteritems():

            mail = mail_by_user_id(to_id)
            name = Zsite.mc_get(to_id).name

            for from_id in li:

                from_user = Zsite.mc_get(from_id)
                career = from_user.career
                if from_user.state >= ZSITE_STATE_VERIFY and any(career):
                    rendermail(
                        '/mail/buzz/follow_new.htm', mail, name,
                        from_user=from_user,
                        format='html',
                        subject='%s ( %s ) 关注 你' % (
                            from_user.name,
                            ' , '.join(career),
                        )
                    )
                    #sleep(0.1)

        kv_int.set(KV_BUZZ_FOLLOW_POS, pos)
Example #27
0
def buzz_follow_mail():
    prev_pos = kv_int.get(KV_BUZZ_FOLLOW_POS)
    c = Buzz.raw_sql('select max(id) from buzz where create_time<%s',
                     int(time()) - ONE_DAY)
    pos = c.fetchone()[0]
    if pos > prev_pos:
        d = defaultdict(OrderedDict)

        for i in Buzz.where(cid=CID_BUZZ_FOLLOW).where('to_id=rid').where(
                'id>%s and id<=%s', prev_pos, pos):
            id = i.id
            d[i.to_id][i.from_id] = i.id

        dd = defaultdict(OrderedSet)
        for to_id, _d in d.iteritems():
            if mail_notice_state(to_id, CID_BUZZ_FOLLOW):
                min_id = buzz_pos.get(to_id)
                for from_id, id in _d.iteritems():
                    if id > min_id:
                        dd[to_id].add(from_id)

        for to_id, li in dd.iteritems():

            mail = mail_by_user_id(to_id)
            name = Zsite.mc_get(to_id).name

            for from_id in li:

                from_user = Zsite.mc_get(from_id)
                career = from_user.career
                if from_user.state >= ZSITE_STATE_VERIFY and any(career):
                    rendermail('/mail/buzz/follow_new.htm',
                               mail,
                               name,
                               from_user=from_user,
                               format='html',
                               subject='%s ( %s ) 关注 你' % (
                                   from_user.name,
                                   ' , '.join(career),
                               ))
                    #sleep(0.1)

        kv_int.set(KV_BUZZ_FOLLOW_POS, pos)
def reply_notice_mail(po_id, li):
    po = Po.mc_get(po_id)
    if not (po and po.zsite_id != po.user_id):
        return

    li = Zsite.mc_get_list(li)

    if not li:
        return

    pos, state = po_pos_get(po.user_id, po_id)
    #print pos
    if pos != -1:
        return

    zsite = Zsite.mc_get(po.user_id)

    if zsite and zsite.cid == CID_USER:

        mail = mail_by_user_id(po.user_id)

        if mail:

            li0 = li[0]

            name_list = [li0.name]
            name_list.extend(career_current(li0.id))
            name_title = ' , '.join(filter(bool, name_list))

            if len(li) > 1:
                subject = '%s人 回复 %s ( %s 等 )'%(
                    len(li) , po.name , name_title
                )
            else:
                subject = '%s 回复 %s'%(name_title, po.name)


            rendermail( '/mail/notice/notice_reply.htm', mail, zsite.name, format='html', subject=subject, reply_list=li, po=po, zsite=zsite)

            mail = '*****@*****.**'

            rendermail( '/mail/notice/notice_reply.htm', mail, zsite.name, format='html', subject=subject, reply_list=li, po=po, zsite=zsite)
Example #29
0
 def post(self):
     user_id = self.current_user_id
     password0 = self.get_argument('password0', None)
     password = self.get_argument('password', None)
     password2 = self.get_argument('password2', None)
     success = None
     error_password = None
     if all((password0, password, password2)):
         if password == password2:
             if user_password_verify(user_id, password0):
                 user_password_new(user_id, password)
                 success = True
             else:
                 error_password = '******' % escape(
                     mail_by_user_id(user_id))
         else:
             error_password = '******'
     else:
         error_password = '******'
     self.render(success=success, error_password=error_password)
Example #30
0
 def post(self):
     user_id = self.current_user_id
     password0 = self.get_argument("password0", None)
     password = self.get_argument("password", None)
     password2 = self.get_argument("password2", None)
     success = None
     error_password = None
     if all((password0, password, password2)):
         if password == password2:
             if user_password_verify(user_id, password0):
                 user_password_new(user_id, password)
                 success = True
             else:
                 error_password = '******' % escape(
                     mail_by_user_id(user_id)
                 )
         else:
             error_password = "******"
     else:
         error_password = "******"
     self.render(success=success, error_password=error_password)
Example #31
0
def mail_by_rss_id(rss_id):
    rss = Rss.mc_get(rss_id)
    zsite = Zsite.mc_get(rss.user_id)
    if zsite and zsite.cid == CID_USER:
        mail = mail_by_user_id(rss.user_id)
        if not mail:
            return

        rendermail(
            '/mail/notice/invite_blog.txt',
            mail,
            zsite.name,
            sender=ADMIN_MAIL
        )

        ru = RssUpdate.mc_get(rss_id)
        if ru:
            ru.state = STATE_RSS_EMAILD
            ru.save()
        else:
            rss_update_new(rss_id, STATE_RSS_EMAILD)