From 2e4c61a5c83ec0f564ba4d1d5d5e438da298c27e Mon Sep 17 00:00:00 2001 From: liangliang Date: Sun, 27 Aug 2017 02:58:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DjangoBlog/settings.py | 1 + DjangoBlog/urls.py | 2 +- servermanager/MemcacheStorage.py | 39 ++++++++++++++++++++++++++++ servermanager/__init__.py | 0 servermanager/admin.py | 3 +++ servermanager/apps.py | 5 ++++ servermanager/migrations/__init__.py | 0 servermanager/models.py | 10 +++++++ servermanager/robot.py | 33 +++++++++++++++++++++++ servermanager/tests.py | 3 +++ servermanager/urls.py | 23 ++++++++++++++++ servermanager/views.py | 3 +++ 12 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 servermanager/MemcacheStorage.py create mode 100644 servermanager/__init__.py create mode 100644 servermanager/admin.py create mode 100644 servermanager/apps.py create mode 100644 servermanager/migrations/__init__.py create mode 100644 servermanager/models.py create mode 100644 servermanager/robot.py create mode 100644 servermanager/tests.py create mode 100644 servermanager/urls.py create mode 100644 servermanager/views.py diff --git a/DjangoBlog/settings.py b/DjangoBlog/settings.py index 764ad9d..32a9b9f 100644 --- a/DjangoBlog/settings.py +++ b/DjangoBlog/settings.py @@ -45,6 +45,7 @@ INSTALLED_APPS = [ 'accounts', 'comments', 'oauth', + 'servermanager', 'compressor' ] diff --git a/DjangoBlog/urls.py b/DjangoBlog/urls.py index a2a584e..66e522f 100644 --- a/DjangoBlog/urls.py +++ b/DjangoBlog/urls.py @@ -41,6 +41,6 @@ urlpatterns = [ url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'), url(r'^feed/$', DjangoBlogFeed()), - url(r'^search', include('haystack.urls'), name='search'), + url(r'', include('servermanager.urls', namespace='servermanager', app_name='servermanagers')) ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) diff --git a/servermanager/MemcacheStorage.py b/servermanager/MemcacheStorage.py new file mode 100644 index 0000000..295b1eb --- /dev/null +++ b/servermanager/MemcacheStorage.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: MemcacheStorage.py +@time: 2017/8/27 上午2:42 +""" +from werobot.session import SessionStorage +from werobot.utils import json_loads, json_dumps +from DjangoBlog.utils import cache + + +class MemcacheStorage(SessionStorage): + def __init__(self, prefix='ws_'): + self.prefix = prefix + self.cache = cache + + def key_name(self, s): + return '{prefix}{s}'.format(prefix=self.prefix, s=s) + + def get(self, id): + id = self.key_name(id) + session_json = self.cache.get(id) or '{}' + return json_loads(session_json) + + def set(self, id, value): + id = self.key_name(id) + self.cache.set(id, json_dumps(value)) + + def delete(self, id): + id = self.key_name(id) + self.cache.delete(id) diff --git a/servermanager/__init__.py b/servermanager/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/servermanager/admin.py b/servermanager/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/servermanager/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/servermanager/apps.py b/servermanager/apps.py new file mode 100644 index 0000000..03cc38d --- /dev/null +++ b/servermanager/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ServermanagerConfig(AppConfig): + name = 'servermanager' diff --git a/servermanager/migrations/__init__.py b/servermanager/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/servermanager/models.py b/servermanager/models.py new file mode 100644 index 0000000..b047eb0 --- /dev/null +++ b/servermanager/models.py @@ -0,0 +1,10 @@ +from django.db import models + + +# Create your models here. +class commands(models.Model): + title = models.CharField('命令标题', max_length=300) + command = models.CharField('命令', max_length=2000) + describe = models.CharField('命令描述', max_length=300) + created_time = models.DateTimeField('创建时间', auto_now_add=True) + last_mod_time = models.DateTimeField('修改时间', auto_now=True) diff --git a/servermanager/robot.py b/servermanager/robot.py new file mode 100644 index 0000000..f9c8f87 --- /dev/null +++ b/servermanager/robot.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: robot.py +@time: 2017/8/27 上午1:55 +""" + +from werobot import WeRoBot +import re +from werobot.replies import ArticlesReply, MusicReply, ImageReply +from .MemcacheStorage import MemcacheStorage + +robot = WeRoBot(token='lylinux', enable_session=True) + +robot.config['SESSION_STORAGE'] = MemcacheStorage() + + +@robot.handler +def hello(message, session): + count = 0 + if 'count' in session: + count = session['count'] + count += 1 + session['count'] = count + return str(count) diff --git a/servermanager/tests.py b/servermanager/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/servermanager/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/servermanager/urls.py b/servermanager/urls.py new file mode 100644 index 0000000..5ee7703 --- /dev/null +++ b/servermanager/urls.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.org/ +@software: PyCharm +@file: urls.py +@time: 2017/8/27 上午2:27 +""" + +from django.conf.urls import url +from werobot.contrib.django import make_view +from .robot import robot + +urlpatterns = [ + url(r'^robot/', make_view(robot)), + +] diff --git a/servermanager/views.py b/servermanager/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/servermanager/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.