Example #1
0
def Broadcast(msg):
	msg = utf82unicode(msg)
	msg_body = u'[administrator]: %s' % msg
	users_dict = getUserListFromCache()
	for gtalk in users_dict.keys():
		xmpp_api.xmpp_sendmsg(gtalk,msg_body)
	return len(users_dict.keys())
Example #2
0
def Broadcast(msg):
    msg = utf82unicode(msg)
    msg_body = u'[administrator]: %s' % msg
    users_dict = getUserListFromCache()
    for gtalk in users_dict.keys():
        xmpp_api.xmpp_sendmsg(gtalk, msg_body)
    return len(users_dict.keys())
Example #3
0
def CmdPrivateMsgDo(from_name,msg):
	if GetCmdNum(msg) < 3:
		return 'need nickname and msg'
	nickname = GetCmdByNum(msg,2)
	user = funcs.getUserByNickname(nickname)
	if user is None:
		return 'nickname %s is unknowned' % nickname
	from_user = funcs.getUserByName(from_name)
	msg_pre = '@%s:' % from_user.nickname
	msgbody = msg_pre + msg[msg.find(nickname) + len(nickname)+1:].strip()
	
	xmpp_api.xmpp_sendmsg(user.gtalk,msgbody)
	ret_str = u'you send private msg to %s successfully' % nickname
	return ret_str.encode('utf-8')
Example #4
0
def CmdPrivateMsgDo(from_name, msg):
    if GetCmdNum(msg) < 3:
        return 'need nickname and msg'
    nickname = GetCmdByNum(msg, 2)
    user = funcs.getUserByNickname(nickname)
    if user is None:
        return 'nickname %s is unknowned' % nickname
    from_user = funcs.getUserByName(from_name)
    msg_pre = '@%s:' % from_user.nickname
    msgbody = msg_pre + msg[msg.find(nickname) + len(nickname) + 1:].strip()

    xmpp_api.xmpp_sendmsg(user.gtalk, msgbody)
    ret_str = u'you send private msg to %s successfully' % nickname
    return ret_str.encode('utf-8')
Example #5
0
def checkUserOnline():
	ret_msg = ''
	online_users = getOnlineUserListFromCache()
	all_users = getUserListFromCache()
	for user in all_users.values():
		if user.gtalk.find('@gmail.com') == -1:
			continue
		if xmpp_api.isOnline(user.gtalk):
			if user.gtalk not in online_users:
				addUserToOnlineUserList(user.gtalk)
				if not user.recvOnlineMsg:
					xmpp_api.xmpp_sendmsg(user.gtalk,'[NOTICE]:You CANT Receive Any Msg Since Your OnlineMsgFlag is Off.')
		else:
			if user.gtalk in online_users:
				delUserFromOnlineUserList(user.gtalk)
Example #6
0
def checkUserOnline():
    ret_msg = ''
    online_users = getOnlineUserListFromCache()
    all_users = getUserListFromCache()
    for user in all_users.values():
        if user.gtalk.find('@gmail.com') == -1:
            continue
        if xmpp_api.isOnline(user.gtalk):
            if user.gtalk not in online_users:
                addUserToOnlineUserList(user.gtalk)
                if not user.recvOnlineMsg:
                    xmpp_api.xmpp_sendmsg(
                        user.gtalk,
                        '[NOTICE]:You CANT Receive Any Msg Since Your OnlineMsgFlag is Off.'
                    )
        else:
            if user.gtalk in online_users:
                delUserFromOnlineUserList(user.gtalk)
Example #7
0
def checkDarkRoomList(minute):
	ret_msg = u'%s 从小黑屋里刑满释放了'
	users_list = getDarkRoomUserList()
	time_now = time.time()
	for gtalk in users_list.keys():
		offset = time_now - users_list[gtalk]
		if offset > minute*60:
			delDarkRoomUserList(gtalk)
			db_user = getUserByName(gtalk)
			if db_user.recvOfflineMsg:
				addUserToOfflineMsgOnUserList(gtalk)
			if db_user.recvOnlineMsg:
				addUserToOnlineMsgOnUserList(gtalk)
			broastcastMsg(ret_msg % db_user.nickname,gtalk)
			xmpp_api.xmpp_sendmsg(gtalk,ret_msg % db_user.nickname)
			#return ret_msg % db_user.nickname
		elif offset > (minute*60-60) and offset < minute*60:
			xmpp_api.xmpp_sendmsg(gtalk,'[administrator]: you will be free 1 minute')
Example #8
0
def checkDarkRoomList(minute):
    ret_msg = u'%s 从小黑屋里刑满释放了'
    users_list = getDarkRoomUserList()
    time_now = time.time()
    for gtalk in users_list.keys():
        offset = time_now - users_list[gtalk]
        if offset > minute * 60:
            delDarkRoomUserList(gtalk)
            db_user = getUserByName(gtalk)
            if db_user.recvOfflineMsg:
                addUserToOfflineMsgOnUserList(gtalk)
            if db_user.recvOnlineMsg:
                addUserToOnlineMsgOnUserList(gtalk)
            broastcastMsg(ret_msg % db_user.nickname, gtalk)
            xmpp_api.xmpp_sendmsg(gtalk, ret_msg % db_user.nickname)
            #return ret_msg % db_user.nickname
        elif offset > (minute * 60 - 60) and offset < minute * 60:
            xmpp_api.xmpp_sendmsg(
                gtalk, '[administrator]: you will be free 1 minute')
Example #9
0
def addBlockUserList(from_user, block_user):
    if from_user == block_user:
        if isInDarkRoomUserList(block_user):
            addDarkRoomUserList(block_user)
            return
        ret_msg = u'%s 自己钻到小黑屋了'

        db_user = getUserByName(block_user)
        if db_user.recvOfflineMsg:
            delUserFromOfflineMsgOnUserList(block_user)
        if db_user.recvOnlineMsg:
            delUserFromOnlineMsgOnUserList(block_user)
        broastcastMsg(ret_msg % db_user.nickname, block_user)
        xmpp_api.xmpp_sendmsg(block_user, ret_msg % db_user.nickname)
        addDarkRoomUserList(block_user)
        return
    users_dict = getBlockUserList()
    if users_dict is None:
        users_dict = {}
    if users_dict.get(block_user, None) is None:
        users_dict[block_user] = {}
    users_dict[block_user][from_user] = time.time()
    setConfigValueWithCache('cache_block_user_list', users_dict)
Example #10
0
def addBlockUserList(from_user,block_user):
	if from_user == block_user:
		if isInDarkRoomUserList(block_user):
			addDarkRoomUserList(block_user)
			return
		ret_msg = u'%s 自己钻到小黑屋了'

		db_user = getUserByName(block_user)
		if db_user.recvOfflineMsg:
			delUserFromOfflineMsgOnUserList(block_user)
		if db_user.recvOnlineMsg:
			delUserFromOnlineMsgOnUserList(block_user)
		broastcastMsg(ret_msg % db_user.nickname,block_user)
		xmpp_api.xmpp_sendmsg(block_user,ret_msg % db_user.nickname)
		addDarkRoomUserList(block_user)
		return
	users_dict = getBlockUserList()
	if	users_dict is None:
		users_dict = {}
	if users_dict.get(block_user,None) is None:
		users_dict[block_user] = {}
	users_dict[block_user][from_user] = time.time()
	setConfigValueWithCache('cache_block_user_list',users_dict)
Example #11
0
def checkBlockUserList(number, minute):
    time_now = time.time()
    ret_msg = u'%s 被大家抬到小黑屋了'
    block_users = getBlockUserList()
    for block_user in block_users.keys():
        from_users = block_users[block_user]
        for from_user in from_users.keys():
            if time_now - from_users[from_user] > minute * 60:
                from_users.pop(from_user)
        if len(from_users.keys()) >= number:
            if isInDarkRoomUserList(block_user):
                #return 'blocked already'
                continue

            block_users.pop(block_user)
            setConfigValueWithCache('cache_block_user_list', block_users)
            db_user = getUserByName(block_user)
            if db_user.recvOfflineMsg:
                delUserFromOfflineMsgOnUserList(block_user)
            if db_user.recvOnlineMsg:
                delUserFromOnlineMsgOnUserList(block_user)
            broastcastMsg(ret_msg % db_user.nickname, block_user)
            xmpp_api.xmpp_sendmsg(block_user, ret_msg % db_user.nickname)
            addDarkRoomUserList(block_user)
Example #12
0
def checkBlockUserList(number,minute):
	time_now = time.time()
	ret_msg = u'%s 被大家抬到小黑屋了'
	block_users = getBlockUserList()
	for block_user in block_users.keys():
		from_users = block_users[block_user]
		for from_user in from_users.keys():
			if time_now - from_users[from_user] > minute*60:
				from_users.pop(from_user)
		if len(from_users.keys()) >= number:
			if isInDarkRoomUserList(block_user):
				#return 'blocked already'
				continue

			block_users.pop(block_user)
			setConfigValueWithCache('cache_block_user_list',block_users)
			db_user = getUserByName(block_user)
			if db_user.recvOfflineMsg:
				delUserFromOfflineMsgOnUserList(block_user)
			if db_user.recvOnlineMsg:
				delUserFromOnlineMsgOnUserList(block_user)
			broastcastMsg(ret_msg % db_user.nickname,block_user)
			xmpp_api.xmpp_sendmsg(block_user,ret_msg % db_user.nickname)
			addDarkRoomUserList(block_user)
Example #13
0
def cleanUserDo(days=90):
    time_dot = time.time() - days * 24 * 60 * 60
    time_dot_warning = time_dot + 10 * 24 * 60 * 60
    all_users_dict = getUserListFromCache()
    users_dict = getUserCountList()

    num = 0
    for gtalk in all_users_dict.keys():
        if gtalk in users_dict.keys():
            user_data = users_dict[gtalk]
            if user_data['time'] < time_dot:
                kickuser(gtalk)
                notice_msg = 'NOTICE:Its so long time since you last chat,you are kicked out of group %s' % config.GROUP_ACCOUNT
                xmpp_api.xmpp_sendmsg(gtalk, notice_msg)
                mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg,
                               notice_msg)
                num += 1
            else:
                if user_data['time'] < time_dot_warning:
                    notice_msg = 'WARNING:Its so long time since you last chat in group %s,you will be kicked out of this group in 10 days' % config.GROUP_ACCOUNT
                    xmpp_api.xmpp_sendmsg(gtalk, notice_msg)
                    mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg,
                                   notice_msg)
        else:
            user = all_users_dict[gtalk]
            join_time = user.time
            time_str = join_time.__str__()
            time1 = time.strptime(time_str[0:19], '%Y-%m-%d %H:%M:%S')
            time2 = time.mktime(time1)
            #return time2
            if time2 < time_dot:
                kickuser(gtalk)
                notice_msg = 'NOTICE:Its so long time and you never chat in group %s,you are kicked out of this group' % config.GROUP_ACCOUNT
                xmpp_api.xmpp_sendmsg(gtalk, notice_msg)
                mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg,
                               notice_msg)
                num += 1
            else:
                if time2 < time_dot_warning:
                    notice_msg = 'WARNING:Its so long time and you never chat in group %s,you will be kicked out of this group in 10 days' % config.GROUP_ACCOUNT
                    xmpp_api.xmpp_sendmsg(gtalk, notice_msg)
                    mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg,
                                   notice_msg)
    return num
Example #14
0
def cleanUserDo(days=90):
	time_dot = time.time() - days * 24 * 60 * 60
	time_dot_warning = time_dot + 10 * 24 * 60 * 60
	all_users_dict = getUserListFromCache()
	users_dict = getUserCountList()
	
	num = 0
	for gtalk in all_users_dict.keys():
		if gtalk in users_dict.keys():
			user_data = users_dict[gtalk]
			if user_data['time'] < time_dot:
				kickuser(gtalk)
				notice_msg = 'NOTICE:Its so long time since you last chat,you are kicked out of group %s' % config.GROUP_ACCOUNT
				xmpp_api.xmpp_sendmsg(gtalk,notice_msg)
				mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg, notice_msg)
				num += 1
			else:
				if user_data['time'] < time_dot_warning:
					notice_msg = 'WARNING:Its so long time since you last chat in group %s,you will be kicked out of this group in 10 days' % config.GROUP_ACCOUNT
					xmpp_api.xmpp_sendmsg(gtalk,notice_msg)
					mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg, notice_msg)
		else:
			user = all_users_dict[gtalk]
			join_time = user.time
			time_str = join_time.__str__()
			time1 = time.strptime(time_str[0:19],'%Y-%m-%d %H:%M:%S')
			time2 = time.mktime(time1)
			#return time2
			if time2 < time_dot:
				kickuser(gtalk)
				notice_msg = 'NOTICE:Its so long time and you never chat in group %s,you are kicked out of this group' % config.GROUP_ACCOUNT
				xmpp_api.xmpp_sendmsg(gtalk,notice_msg)
				mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg, notice_msg)
				num += 1
			else:
				if time2 < time_dot_warning:
					notice_msg ='WARNING:Its so long time and you never chat in group %s,you will be kicked out of this group in 10 days' % config.GROUP_ACCOUNT
					xmpp_api.xmpp_sendmsg(gtalk,notice_msg)
					mail.send_mail(config.ADMIN_GTALK, gtalk, notice_msg, notice_msg)
	return num
Example #15
0
def broastcastMsg(msg,from_gtalk,hint=True):
	msg = utf82unicode(msg)
	user = getUserByName(from_gtalk)
	if user is None:
		return
	if hint:
		msg_body = u'[administrator]: %s' % msg
	else:
		msg_body = u'%s: %s' % (user.nickname,msg)

	if isInDarkRoomUserList(from_gtalk):
		msg_body = u'[%s]: %s' % (user.nickname,msg)
		users_dict = getDarkRoomUserList()
		for gtalk in users_dict.keys():
			if from_gtalk == gtalk:
				continue
			xmpp_api.xmpp_sendmsg(gtalk,msg_body)
		return
		
	online_users = getOnlineUserListFromCache()
	online_msgon_users = getOnlineMsgOnUserListFromCache()
	for gtalk in online_msgon_users:
		if from_gtalk == gtalk:
			continue
		if gtalk in online_users:
			xmpp_api.xmpp_sendmsg(gtalk,msg_body)
	
	nowtime = time.time() + 8 * 3600
	tmptime = time.localtime(nowtime)
	time_str = ' (%s)' % time.strftime('%m.%d %H:%M',tmptime)

	if not hint:
		offline_msgon_users = getOfflineMsgOnUserListFromCache()
		for gtalk in offline_msgon_users:
			if from_gtalk == gtalk:
				continue
			if gtalk not in online_users:
				xmpp_api.xmpp_sendmsg(gtalk,msg_body + time_str)
Example #16
0
def broastcastMsg(msg, from_gtalk, hint=True):
    msg = utf82unicode(msg)
    user = getUserByName(from_gtalk)
    if user is None:
        return
    if hint:
        msg_body = u'[administrator]: %s' % msg
    else:
        msg_body = u'%s: %s' % (user.nickname, msg)

    if isInDarkRoomUserList(from_gtalk):
        msg_body = u'[%s]: %s' % (user.nickname, msg)
        users_dict = getDarkRoomUserList()
        for gtalk in users_dict.keys():
            if from_gtalk == gtalk:
                continue
            xmpp_api.xmpp_sendmsg(gtalk, msg_body)
        return

    online_users = getOnlineUserListFromCache()
    online_msgon_users = getOnlineMsgOnUserListFromCache()
    for gtalk in online_msgon_users:
        if from_gtalk == gtalk:
            continue
        if gtalk in online_users:
            xmpp_api.xmpp_sendmsg(gtalk, msg_body)

    nowtime = time.time() + 8 * 3600
    tmptime = time.localtime(nowtime)
    time_str = ' (%s)' % time.strftime('%m.%d %H:%M', tmptime)

    if not hint:
        offline_msgon_users = getOfflineMsgOnUserListFromCache()
        for gtalk in offline_msgon_users:
            if from_gtalk == gtalk:
                continue
            if gtalk not in online_users:
                xmpp_api.xmpp_sendmsg(gtalk, msg_body + time_str)
Example #17
0
def sendMsgToAdminUsers(msg):
    users = DBUser.all().filter('isAdmin =', True).fetch(1000)
    for user in users:
        xmpp_api.xmpp_sendmsg(user.gtalk, msg)
Example #18
0
def sendMsgToAdminUsers(msg):
	users = DBUser.all().filter('isAdmin =', True).fetch(1000)
	for user in users:
		xmpp_api.xmpp_sendmsg(user.gtalk,msg)