关于网易云音乐个性推荐无法显示的问题

Posted in 2017-6-2 13:8 | Category: Linux | Tags: netease linux archlinux

最近在使用网易云音乐时首页的个性推荐总是无法显示,一直在正在为你生成个性化推荐,网上也没找到什么办法,偶然间使用

┌─[jianglin]─[~]
└──╼ rm -rf .cache/netease-cloud-music/
┌─[jianglin]─[~]
└──╼ rm -rf .config/netease-cloud-music/

重新打开登陆后个性推荐就出现了,特此记录

himawari8图片下载改进版

Posted in 2017-3-23 11:42 | Category: Python | Tags: earth himawari8 python

第一版下载图片后设为壁纸,四周都是黑黑的不好看, 所以结合本地壁纸将两张图片进行合成

只要计算一下要缩减的大小与要放置的位置

我的方法是:打开 gimp,合成两张图片,记下缩减的大小(214,214)与位置(160,160)

每次只要运行一下

python himawari8.py

源码

from PIL import Image, ImageOps, ImageDraw
from io import BytesIO
from urllib.request import Request, urlopen
from datetime import datetime, timedelta
import json

SCALE = 2
WIDTH = 1368
HEIGHT = 768


def get_info():
    url = "http://himawari8-dl.nict.go.jp/himawari8/img/D531106/latest.json"
    request = Request(url)
    response = urlopen(request, timeout=10)
    return json.loads(response.read())


def download():
    png = Image.new('RGB', (550 * SCALE, 550 * SCALE))
    # desktop = Image.new('RGB', (WIDTH, HEIGHT))
    desktop = Image.open('/home/jianglin/Pictures/308556.png')
    url_format = 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/{}d/{}/{}_{}_{}.png'
    info = get_info()
    # date = datetime.strptime(info['date'], '%Y-%m-%d %H:%M:%S') + timedelta(
    #     hours=-8)
    date …

下载Himawari8拍摄的实时地球图片

Posted in 2017-3-22 22:10 | Category: Python | Tags: earth himawari8 python

设置壁纸

feh --bg-scale /tmp/earth.png

设置桌面大小,及图片放大倍数

SCALE = 4
WIDTH = 1368
HEIGHT = 768

直接给出源码

from PIL import Image
from io import BytesIO
from urllib.request import Request, urlopen
from datetime import datetime
import json

SCALE = 4
WIDTH = 1368
HEIGHT = 768


def get_info():
    url = "http://himawari8-dl.nict.go.jp/himawari8/img/D531106/latest.json"
    request = Request(url)
    response = urlopen(request, timeout=10)
    return json.loads(response.read())


def download():
    png = Image.new('RGB', (550 * SCALE, 550 * SCALE))
    desktop = Image.new('RGB', (WIDTH, HEIGHT))
    url_format = 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/{}d/{}/{}_{}_{}.png'
    info = get_info()
    date = datetime.strptime(info['date'], '%Y-%m-%d %H:%M:%S')
    for x in range(SCALE):
        for y in range(SCALE):
            url = url_format.format(SCALE, 550,
                                    date.strftime("%Y/%m …

拟挽歌辞·荒草何茫茫

Posted in 2017-3-19 14:42 | Category: 生活随笔 | Tags: 随意写写 转载

拟挽歌辞·荒草何茫茫

-- 陶渊明

    荒草何茫茫,白杨亦萧萧。

严霜九月中,送我出远郊。
  四面无人居,高坟正嶕峣。
  马为仰天鸣,风为自萧条。
  幽室一已闭,千年不复朝。
  千年不复朝,贤达无奈何。
  向来相送人,各自还其家。
  亲戚或余悲,他人亦已歌。
  死去何所道,托体同山阿。

使用flask实现的一个简单的图片上传存储服务

Posted in 2017-3-14 6:16 | Category: Python | Tags: linux flask python

maple-file

使用flask实现的一个简单的图片上传服务

设计初衷

对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛 自定义域名竟然需要域名备案(Excuse me,当初就是因为备案麻烦才选择国外的),而且浪费了我十块钱,

而我又想像七牛一样可以直接在本地就可以上传图片,找来找去,没有找到一个比较合适的,所以花两天时间自己写了一个

使用

由于初衷是本地脚本就可以发布,所以没有前端界面,等以后有时间了再加上

API

  • /api/login
    • POST 登录
  • /api/logout
    • GET 注销
  • /api/albums
    • GET 获取相册列表
    • POST 新建相册
      • name 相册名称
      • description 相册描述
  • /api/albums/

    pk 相册ID

    • GET 获取相册信息
    • PUT 修改相册信息
      • name 相册名称
      • description 相册描述
    • DELETE 删除相册
    • /api/images
    • GET 获取图片列表
    • POST 上传图片
      • images 上传图片列表
      • album 相册ID(默认会新建一个default相册)
    • /api/images/
    • GET 获取图片信息
    • PUT 修改图片信息
      • name 图片名称
      • description 图片描述
    • DELETE 删除图片

配置

class Config(object):
    DEBUG = True # 生产环境设置为False
    SECRET_KEY = 'ccc' # import os;os.urandom(24)
    SECRET_KEY_SALT = 'ssss'
    JSON_AS_ASCII …

sqlalchemy使用上的小tip

Posted in 2017-3-14 6:16 | Category: Python | Tags: django sqlalchemy python

GitHub地址: https://github.com/honmaple/maple-json

sqlalchemy object序列化为json

灵感来源于 Django REST framework

多个实例

posts = Post.query.all()
serializer = Seralizer(posts,many=True)
data = serializer.data

单个实例

post = Post.query.first()
serializer = Seralizer(post,many=False)
data = serializer.data

排除字段

serializer = Seralizer(post,exclude=['title'])

仅包括字段

serializer = Seralizer(post,include=['title'])

关系查询深度

serializer = Seralizer(post,depth=3)
  • depth 默认为2

增加一些自定义的函数

serializer = Serializer(post,extra=['get_post_count'])

Post

class Post(Model):
    ......
    def get_post_count(self):
        return 11

可传递参数的函数

class PostSerializer(Serializer …

无题

Posted in 2017-3-9 10:49 | Category: 生活随笔 | Tags: 生活随笔

静流风动谁能狂,
杀心渐起染风云,
封欲离人平如漠,
断袖为仇似生袍,
道望无涯天明云,
剑芒一指斩红尘,
刀横黄河断流水,
心系天下有奈何。

django获取当前request

Posted in 2017-1-10 19:3 | Category: Python | Tags: django python

参考链接:

https://blndxp.wordpress.com/2016/03/04/django-get-current-user-anywhere-in-your-code-using-a-middleware/

http://nedbatchelder.com/blog/201008/global_django_requests.html

使用中间件

from __future__ import absolute_import, division, print_function

try:
    from threading import local
except ImportError:
    from django.utils._threading_local import local

_thread_locals = local()

def get_current_request():
    """ returns the request object for this thread """
    return getattr(_thread_locals, "request", None)

def get_current_user():
    """ returns the current user, if exist, otherwise returns None """
    request = get_current_request()
    if request:
        return getattr(request, "user", None)

class ThreadLocalMiddleware(object):
    """ Simple middleware that adds the request object in thread local stor    age."""

    def process_request(self, request):
        _thread_locals.request = request

    def process_response(self, request, response):
        if hasattr(_thread_locals, 'request'):
        del _thread_locals.request
            return response

升级至python3.6导致环境出错解决

Posted in 2017-1-9 23:40 | Category: Linux | Tags: python3 linux python i3wm

最近archlinux升级至了 python3.6 ,直接导致了我的开发环境失效,唉

archlinux 果然不适合开发

虽然后面都已经解决了

事故(一)

virtualenv不可用,原先使用python3.5创建的环境直接不能用了,只好删了原有了东西,重新使用python3.6创建

pip freeze > requestments.txt
pip install -r requestments.txt

事故(二)

py3status 报错

   Traceback (most recent call last):
  File "/usr/bin/py3status", line 11, in <module>
    load_entry_point('py3status==3.3', 'console_scripts', 'py3status')()
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 561, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2291, in load
    return self.resolve()
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level …

我的毕业设计--数据库设计之站内信(二)

Posted in 2017-1-1 9:3 | Category: 生活随笔 | Tags: 毕业设计 站内信 生活随笔

基本站内信

需要的字段:

  • 发送方
  • 发送时间
  • 信件标题
  • 信件内容
  • 信件类型
    • 公告
    • 账户信息
    • 工单信息
    • 产品服务
    • 申请结果
    • 其他
  • 信件状态
    • 未读
    • 已读
    • 删除
  • 接收方
    • 某个人
    • 某个群体
    • 全部用户

设计

message_text表

字段名 描述 其他
title 信件标题  
content 信件内容  
message\_type 信件分类  
sender 发送者  
groups 接收组 可为空,可多个

message表

字段名 描述 其他
status 信件状态  
receiver 接收人 只能为一
message\_text 关联的信件主体内容 不能为空

逻辑实现

到全部用户

发送

直接保存内容到 message_text 表中 指定接收方设为空

接收

先找到 message_text 表的关联数据 messages 为空的全部数据

保存数据到 message 表中

message:

  • receiver
    • 为当前登陆用户
  • message_text …

我的毕业设计--数据库设计之工单管理

Posted in 2017-1-1 9:3 | Category: 生活随笔 | Tags: 毕业设计 工单 生活随笔

工单设计

工单基本字段

  • 工单标题
  • 工单类型
  • 工单状态
    • 已提交
    • 已确认
    • 正在处理
    • 已完成
  • 工单内容
  • 工单附件 可多个附件(最多3个)
    • 图片
    • 文档
  • 提交人
  • 提交人手机
  • 提交人邮箱
  • 处理内容
    • 处理单独分表
  • 处理人
    • 可有多个处理人
  • 时间相关
    • 提交时间
    • 处理时间

逻辑实现

数据库设计

工单表

tablename: ticket
字段名 字段类型 字段描述 是否为空 是否unique 默认值
title String(128) 工单标题 False False  
description String(1024) 工单内容 False False  
ticket\_type String(10) 工单类型 False False 产品服务
status String(10) 状态 False False 已提交
phone String(14) 手机号 False False  
email String(49) 邮箱 False False  

处理表

tablename: handle
字段名 字段类型 字段描述 是否为空 是否unique 默认值
content String(1024) 处理内容 False False  
ticket\_id Integer 关联ticket的主键 False False  
ticket   工单 False False  

附件表

tablename …

我的毕业设计--数据库设计之站内信

Posted in 2016-12-26 14:56 | Category: 生活随笔 | Tags: 毕业设计 站内信 生活随笔

站内信设计

<2016-12-29 四>更新 添加站内信与用户组关系

逻辑实现

点对点(私信)

  • 发送方 sender
  • 接收方 receiver
  • 状态 status
  • 信息内容 message
  • 信息分类 message_type
  • 发送时间 created_at

    点对点发送消息比较简单,每次发送为单表时插入 sender, receiver, message, created_at

    (伪代码) - 获取未读信息

    select message from message where reveiver_id == 'user.id' and status = 'unread';
    
    • 获取系统未读信息

      select message from message where reveiver_id == 'user.id' and status = 'unread' and message_type = 'sys' - 获取已读信息

      status = 'read'

点到局部(新增)

考虑到发送消息到某一特定群体,某一组,需要站内信与用户组关联

使用多对多关系

group_message = db.Table(
    'group_message',
    db.Column('group_id', db.Integer, db.ForeignKey('group.id')),
    db.Column('message_text_id', db.Integer, db.ForeignKey('message_text.id')))

class MessageText():
    ......
    groups = db.relationship(
        Group,
        secondary=group_message …

centos升级git至最新版本

Posted in 2016-12-26 14:56 | Category: Linux | Tags: centos git linux

原因

centos默认git 版本 1.7.1

$ git clone

时报错:

The requested URL returned error: 401 Unauthorized while accessing

无法使用http + username + password 方式

升级

下载源码

https://www.kernel.org/pub/software/scm/git/

$ wget https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.xz
$ tar xvf git-2.11.0.tar.xz

编译

$ sudo mkdir -p /opt/git
$ cd git-2.11.0
$ ./configure --prefix=/opt/git/
$  make
$  sudo yum remove git
$ sudo make install

修改.bashrc

export PATH=$PATH:/opt/git/bin

然后

$ source .bashrc

ok,查看版本

$ git --version
git version 2.11.0

mysql更改数据库编码为utf8

Posted in 2016-12-26 14:56 | Category: Linux | Tags: linux mysql

http://stackoverflow.com/questions/5906585/how-to-change-the-default-collation-of-a-database

单个修改

数据库

ALTER DATABASE <database_name> CHARACTER SET utf8 COLLATE utf8_unicode_ci;

数据表

ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

数据表字段

ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;

批量修改

数据库

SELECT DISTINCT concat('ALTER DATABASE `', TABLE_SCHEMA, '` CHARACTER SET utf8 COLLATE utf8_unicode_ci;')
from information_schema.tables
where TABLE_SCHEMA like  'database_name';

数据表

SELECT concat('ALTER TABLE `', TABLE_SCHEMA, '`.`', table_name, '` CHARACTER SET utf8 COLLATE utf8_unicode_ci;')
from information_schema.tables
where TABLE_SCHEMA like 'database_name';

数据表字段

SELECT concat('ALTER TABLE `', t1.TABLE_SCHEMA, '`.`', t1.table_name, '` MODIFY `', t1.column_name, '` ', t1.data_type , '(' , t1.CHARACTER_MAXIMUM_LENGTH , ')' , ' CHARACTER SET utf8 COLLATE utf8_unicode_ci;')
from information_schema.columns …

开发环境初始化(centos7)

Posted in 2016-12-26 14:56 | Category: Linux | Tags: centos redis linux python mysql

新建用户

[root@localhost]# passwd honmaple
Changing password for user honmaple.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.

安装mysql

参考步骤: http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

下载安装

[root@localhost]# wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm
[root@localhost]# rpm -Uvh mysql57-community-release-el6-8.noarch.rpm
[root@localhost]# yum list installed | grep mysql
mysql57-community-release.noarch     el6-8                          installed
[root@localhost]# yum install mysql-community-server
错误:软件包:2:postfix-2.10.1-6.el7.x86_64 (@anaconda)
          需要:libmysqlclient.so.18(libmysqlclient_18)(64bit …

mysql部分用户无权限导致无法创建数据库

Posted in 2016-12-25 8:4 | Category: Linux | Tags: linux mysql

记一下

如果记得root用户名及密码

mysql -u root -pyoupassword

如果忘记root用户名及密码

以safe模式启动

mysqld_safe --skip-grant-tables &
mysql -u root

修改user权限

mysql> use mysql;
mysql> show grants;

mysql> GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

# 这里应该有些问题 maybe set global read_only=OFF/ON;
mysql> set global read_only=0;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

# 权限给的太大了
mysql> GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> set global read_only=1;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec …

我的毕业设计--数据库设计之登陆注册

Posted in 2016-12-25 8:4 | Category: 生活随笔 | Tags: 毕业设计

登陆注册数据库设计

共同字段:

  • id 主键,自增ID

用户表

tablename: user
字段名 字段类型 字段描述 是否为空 是否unique 默认值
username string(20) 用户名 False True  
password string(100) 密码 False False  
email string(49) 邮箱 False True  
is_superuser bool 是否为超级管理员 False False False
is_confirmed bool 邮箱是否验证 False False False
register_time datetime 注册时间 False False UTC时间
last_login datetime 上次登陆 True False  

用户信息表

tablename: userinfo
字段名 字段类型 字段描述 是否为空 是否unique 默认值
avatar string(128) 头像路径 True False  
company string(128) 公司 True False  
website string(128) 网址 True False  
user_id integer 关联用户表外键 True True  
user   与用户信息成一对一关系      

用户设置表

tablename: usersetting
字段名 字段类型 字段描述 是否为空 是否unique …

emacs预览图片时禁止smooth-scrolling

Posted in 2016-12-20 12:41 | Category: Linux | Tags: linux emacs org-mode

Table of Contents

需求

在使用 org-mode 写文档时,插入图片后默认不显示,想要直接在 org文件中预览图片,可以使用

org-toggle-inline-images

但是问题来了,开启预览模式后,移动光标跳过文件内容,找了一下

参考链接 1 那么问题来了,如何只在开启 org-toggle-inline-images 后关闭 smooth-scrooling, 关闭 org-toggle-inline-images 后开启 smooth-scrooling

解决

给出代码,使用 defadvice

(defadvice org-toggle-inline-images (after org-open-at-point activate)
  (if smooth-scrolling-mode (smooth-scrolling-mode -1)
        (smooth-scrolling-mode 1)))

Footnotes:

1
[https://github.com/syl20bnr/spacemacs/issues/3824](https://github.com/syl20bnr/spacemacs/issues/3824)