令人发指视频搜索 for Greasemonkey
令人发指视频搜索 for Greasemonkey: "令人发指视频搜索"
把我原来豆瓣和MDBChina的两个视频搜索 user scripts 合并了,并且用我的动态 GM JS 调用改造了一下。现在只要我在数据库里加记录,安装了 user script 的 Firefox 就可以在新影评站点进行搜索了。
已支持的影评网站:
更多的影评和视频分享网站添加中...
Update(Apr 27, 2009):
支持的视频搜索和分享网站:
- Gougou
- Youku video
- Youku playlist
- Ku6 Video Search
- 56 Video
- Youtube Video
- Google CN video
- Tudou video
- Tudou playlist
- Gougou BT
- Ku6 Playlist
- 56 Playlist
- Youtube Channel
- Youtube Playlist
- VeryCD
- isoHunt
- OpenV
- The Pirate Bay
Labels: greasemonkey, video
Online Backup, Data Backup, & Online Storage Service for Windows, Mac, and Linux from Spideroak.com
Online Backup, Data Backup, & Online Storage Service for Windows, Mac, and Linux from Spideroak.com: "SpiderOak provides an easy, secure and consolidated free online backup, storage, access, sharing & sync* tool for Windows, Mac OS X, and Linux (Ubuntu & Debian)"
I'm using SpiderOak for backing up my CVS root now. It's the simplest way I can find for online Linux desktop backup. Ubuntu Hardy AMD64 is well supported. But it requires a property client, which make it hard to use with server or low-end devices.
I registered
drivehq.com also, which supports FTP. But I'm still looking for tools or scripts which can keep versions of backups with FTP: I don't want to program it by myself.
Update(3/11/09): the latest news, SpiderOak hung up hours after it was installed. Now, there are lot of files with status
0.00% and
queued, but no change anymore. So, shall I switch back to backupninja, and programing a script for FTP?
Official Google Notebook Blog: Stopping development on Google Notebook: "Starting next week, we plan to stop active development on Google Notebook. This means we'll no longer be adding features or offer Notebook for new users."
I signed up a new Google account with a domain of my own (secutum.com), and accessed Google notebook successfully. It's a good news. I do take a lot of notes.
Labels: google
CeBIT 2009 : 宏碁两款改版 easyStore NAS 亲眼看很象我计划中的 NAS. 就差几点:
* 再多个 5 寸仓位装DVD-RW driver
* OS 改 Linux, 不过这不是大问题, 自己能搞定
* 价格?
Labels: linux
Django-wiki For AppEngine
Django-wiki is a very basic Wiki based on Django. It costed me a few minutes to port it to AppEngine. The patch against http://github.com/sneeu/django-wiki/tree/master current repository:
diff -ruN wiki/admin.py appengine-wiki/admin.py
--- wiki/admin.py 2008-12-08 10:58:24.000000000 +0800
+++ appengine-wiki/admin.py 2009-03-06 14:24:06.000000000 +0800
@@ -2,5 +2,10 @@
from models import Page
+#admin.site.register(Page)
+
+class PageAdmin(admin.ModelAdmin):
+ model = Page
+
+admin.site.register(Page, PageAdmin)
-admin.site.register(Page)
diff -ruN wiki/models.py appengine-wiki/models.py
--- wiki/models.py 2008-12-08 10:58:24.000000000 +0800
+++ appengine-wiki/models.py 2009-03-06 14:16:21.000000000 +0800
@@ -1,18 +1,22 @@
from django.db import models
+from google.appengine.ext import db
from templatetags.wiki import wikify
-class Page(models.Model):
- name = models.CharField(max_length=255, unique=True)
- content = models.TextField()
- rendered = models.TextField()
+class Page(db.Model):
+# name = models.CharField(max_length=255, unique=True)
+# content = models.TextField()
+# rendered = models.TextField()
+ name = db.StringProperty(required=True)
+ content = db.TextProperty(default='')
+ rendered = db.TextProperty(default='')
- class Meta:
- ordering = ('name', )
+# class Meta:
+# ordering = ('name', )
def __unicode__(self):
- return self.name
+ return u'%s' % self.name
def save(self, *args, **kwargs):
self.rendered = wikify(self.content)
diff -ruN wiki/views.py appengine-wiki/views.py
--- wiki/views.py 2008-12-08 10:58:24.000000000 +0800
+++ appengine-wiki/views.py 2009-03-06 14:17:55.000000000 +0800
@@ -8,14 +8,16 @@
def index(request):
"""Lists all pages stored in the wiki."""
- pages = Page.objects.all()
+# pages = Page.objects.all()
+ pages = Page.all()
return render_to_response('wiki/index.html', {'pages': pages})
def view(request, name):
"""Shows a single wiki page."""
try:
- page = Page.objects.get(name=name)
+# page = Page.objects.get(name=name)
+ page = Page.gql("WHERE name = :1", name).get()
except Page.DoesNotExist:
page = Page(name=name)
@@ -25,7 +27,8 @@
def edit(request, name):
"""Allows users to edit wiki pages."""
try:
- page = Page.objects.get(name=name)
+# page = Page.objects.get(name=name)
+ page = Page.gql("WHERE name = :1", name).get()
except Page.DoesNotExist:
page = None
@@ -33,9 +36,8 @@
form = PageForm(request.POST)
if form.is_valid():
if not page:
- page = Page()
- page.name = form.cleaned_data['name']
- page.content = form.cleaned_data['content']
+ page = Page(name = form.cleaned_data['name'],
+ content = form.cleaned_data['content'])
page.save()
return HttpResponseRedirect('../../%s/' % page.name)
Labels: appengine, django, Wiki