mirror of
https://git.wownero.com/wownero/tippero.git
synced 2024-08-15 00:33:14 +00:00
twitter: add optional prefix text when linking, and shorter links
This commit is contained in:
parent
43cead6582
commit
ec95e55091
2 changed files with 25 additions and 4 deletions
|
@ -69,7 +69,9 @@ network_config = {
|
|||
'keyword': '@tipperome',
|
||||
'fs_location': '/tmp/twitter',
|
||||
'fs_prefix_tree': 2,
|
||||
'fs_hash_length': 32,
|
||||
'uri_base': 'http://127.0.0.1/',
|
||||
'prefix_when_linked': 'see: ',
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -59,6 +59,8 @@ class TwitterNetwork(Network):
|
|||
self.fs_location=cfg['fs_location']
|
||||
self.fs_prefix_tree=cfg['fs_prefix_tree']
|
||||
self.uri_base=cfg['uri_base']
|
||||
self.prefix_when_linked=cfg['prefix_when_linked']
|
||||
self.fs_hash_length=cfg['fs_hash_length']
|
||||
|
||||
if self.fs_location and not self._is_valid_location(self.fs_location):
|
||||
log_error('Invalid location: %s' % self.fs_location)
|
||||
|
@ -105,13 +107,26 @@ class TwitterNetwork(Network):
|
|||
else:
|
||||
return self._schedule_dm(msg,user)
|
||||
|
||||
def _can_be_sent_raw(self,msg):
|
||||
# twitter rejects anything more than a few words
|
||||
if len(msg) >= 140:
|
||||
return False
|
||||
# twitter seems to eat up dupes
|
||||
if redis_sismember('twitter:message_hashes',hashlib.sha256(msg).hexdigest()):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _schedule_tweet(self,msg,reply_to_msg):
|
||||
try:
|
||||
log_info('Scheduling tweet in reply to %s: %s' % (str(reply_to_msg.id),msg))
|
||||
if self.uri_base:
|
||||
uri=self._make_uri(msg)
|
||||
name=self.canonicalize(reply_to_msg.user.screen_name)
|
||||
msg="%s: %s" % (name,uri)
|
||||
msg="%s: %s" % (name,msg)
|
||||
if self._can_be_sent_raw(msg):
|
||||
redis_sadd('twitter:message_hashes',hashlib.sha256(msg).hexdigest())
|
||||
else:
|
||||
uri=self._make_uri(msg)
|
||||
msg="%s: %s%s" % (name,self.prefix_when_linked,uri)
|
||||
reply="g:"+str(reply_to_msg.id)+":"+msg
|
||||
redis_rpush('twitter:replies',reply)
|
||||
except Exception,e:
|
||||
|
@ -121,9 +136,13 @@ class TwitterNetwork(Network):
|
|||
try:
|
||||
log_info('Scheduling DM to %s: %s' % (str(user.nick),msg))
|
||||
if self.uri_base:
|
||||
uri=self._make_uri(msg)
|
||||
nick=self.canonicalize(user.nick)
|
||||
msg="%s: %s" % (nick,uri)
|
||||
if self._can_be_sent_raw(msg):
|
||||
redis_sadd('twitter:message_hashes',hashlib.sha256(msg).hexdigest())
|
||||
else:
|
||||
uri=self._make_uri(msg)
|
||||
msg="%s: %s%s" % (nick,self.prefix_when_linked,uri)
|
||||
reply="u:"+str(user.nick)+":"+msg
|
||||
redis_rpush('twitter:replies',reply)
|
||||
except Exception,e:
|
||||
|
@ -301,7 +320,7 @@ class TwitterNetwork(Network):
|
|||
def _intern(self,contents):
|
||||
base=str(time.time())+":"+str(getrandbits(128))+":"
|
||||
for n in range(10000):
|
||||
filename=hashlib.sha256(base+str(n)).hexdigest()
|
||||
filename=hashlib.sha256(base+str(n)).hexdigest()[:self.fs_hash_length]
|
||||
split_path=self._check_and_create(filename,contents)
|
||||
if split_path:
|
||||
return split_path
|
||||
|
|
Loading…
Reference in a new issue