Python irc bot + sqlalchemy,在多个渠道跟踪用户

时间:2012-10-19 12:19:48

标签: python sqlalchemy twisted irc

Python 2.7,PGSQL,SQLAlchemy和twisted的irc.ircclient。

我目前正在将IRC用户存储在字典中,使用他们的昵称作为“密钥”以便于检索,用户从SQLAlchemy中检索,因此users['deepy']是一个SQLAlchemy对象,我定期与我的数据库同步。< / p>

现在我遇到的问题是,在IRC上,人们可以在很多频道中,我只是跟踪一个,我需要一个关于如何改进它的建议。

我一直在考虑做同样的事情,但也将频道用户(作为列表)存储在字典中,频道名称为关键字,如:

{ '#two': ['reference to user9', 'reference to user62'], '#one': ['reference to user1', 'reference to user2'] }

引用是包含SQLAlchemy对象的用户词典。

这是一种明智的做法吗?

1 个答案:

答案 0 :(得分:0)

我发现最好尽可能少地存储SQLALchemy对象。存储大量SQLAlchemy对象导致不得不担心同步问题并耗尽内存。

我会跟踪用户名或用户ID而不是实际的用户对象:

{ '#two': ['bob1', 'tom2'], '#one': ['bob1', 'mary1'] }

然后每当我需要用户的信息时,我都会从数据库中获取它们。如果我只有少数用户并且需要经常访问它们,那么我会创建一个将用户名映射到SQLAlchemy用户对象的字典。