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)
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)
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 )
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)
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
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)
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)
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)
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, )
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 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 )
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
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
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)
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)
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 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)
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)
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)
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)
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)