Version 0.3.6, Rev879, Fix sidebar error on description missing, New trayicon, New favicon, Disable some functions on MultiUser proxies, New homepage, Replace only the last ? in SQL queries, Alwaays grant ADMIN permission to homepage site, Announce before publish if no peers, configSet, serverShutdown, ADMIN WebsocketAPI command, Stop Tor client before updating, Ignore peer ip packing error, Ignore db files from git, Fix safari ajax error when UiPassword enabled
This commit is contained in:
parent
f7eaf7b222
commit
687a848292
15 changed files with 144 additions and 29 deletions
48
plugins/Newsfeed/NewsfeedPlugin.py
Normal file
48
plugins/Newsfeed/NewsfeedPlugin.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
from Plugin import PluginManager
|
||||
import re
|
||||
|
||||
@PluginManager.registerTo("UiWebsocket")
|
||||
class UiWebsocketPlugin(object):
|
||||
def actionFeedFollow(self, to, feeds):
|
||||
self.user.setFeedFollow(self.site.address, feeds)
|
||||
self.response(to, "ok")
|
||||
|
||||
def actionFeedListFollow(self, to):
|
||||
feeds = self.user.sites[self.site.address].get("follow", {})
|
||||
self.response(to, feeds)
|
||||
|
||||
def actionFeedQuery(self, to):
|
||||
from Site import SiteManager
|
||||
rows = []
|
||||
for address, site_data in self.user.sites.iteritems():
|
||||
feeds = site_data.get("follow")
|
||||
if not feeds:
|
||||
continue
|
||||
for name, query_set in feeds.iteritems():
|
||||
site = SiteManager.site_manager.get(address)
|
||||
try:
|
||||
query, params = query_set
|
||||
if ":params" in query:
|
||||
query = query.replace(":params", ",".join(["?"]*len(params)))
|
||||
res = site.storage.query(query+" ORDER BY date_added DESC LIMIT 10", params)
|
||||
else:
|
||||
res = site.storage.query(query+" ORDER BY date_added DESC LIMIT 10")
|
||||
except Exception, err: # Log error
|
||||
self.log.error("%s feed query %s error: %s" % (address, name, err))
|
||||
continue
|
||||
for row in res:
|
||||
row = dict(row)
|
||||
row["site"] = address
|
||||
row["feed_name"] = name
|
||||
rows.append(row)
|
||||
return self.response(to, rows)
|
||||
|
||||
|
||||
@PluginManager.registerTo("User")
|
||||
class UserPlugin(object):
|
||||
# Set queries that user follows
|
||||
def setFeedFollow(self, address, feeds):
|
||||
site_data = self.getSiteData(address)
|
||||
site_data["follow"] = feeds
|
||||
self.save()
|
||||
return site_data
|
1
plugins/Newsfeed/__init__.py
Normal file
1
plugins/Newsfeed/__init__.py
Normal file
|
@ -0,0 +1 @@
|
|||
import NewsfeedPlugin
|
Loading…
Add table
Add a link
Reference in a new issue