分类目录归档:技术

mov 批量转为 mp4

回到老家,拍了一些照片,打算把照片上传到 QQ 空间中去。在上传中发现,由于 Live Photo 被提取出后成为了 mov 文件,而 QQ 空间是不支持 mov 格式的。所以写了个简单的脚本,来做 mov 转 mp4 。
脚本代码如下。


#!/bin/bash
for file in `ls ./`
do
    ffmpeg -i $file -vcodec copy -acodec copy $file".mp4"
done

wxPython 运行报错问题

This program needs access to the screen. Please run with a
Framework build of python, and only when you are logged in
on the main display of your Mac.

运行 wxPython 时报上述错误。
将命令从 python wx1.py 改为 pythonw wx1.py 即可。

Simple Plyr —— 又双叒叕一个视频播放器

初衷

原本我是打算用 WordPress 来建设云学堂的,所以就制作了这款编辑器。但是后来由于考虑到长期发展的问题,所以又放弃了 WordPress 的方案,暂定使用 RoR 来建设。

插件信息

插件名为 Simple Plyr ,目前已经上架到 WordPress 官方仓库,可以在后台直接搜索下载

插件使用说明

使用短代码`[plyr]`即可添加播放器,支持参数 urlposter ,分别是视频地址和视频封面图片地址
Github 仓库地址:https://github.com/bestony/simple-plyr
WordPress 官方仓库地址:https://wordpress.org/plugins/simple-plyr/

为 Django 配置 MySQL驱动

pip install pymysql

先安装 pymysql
然后修改主应用的 __init__.py ,加入如下代码

import pymysql
pymysql.install_as_MySQLdb()

最后,加入数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #数据库引擎
        'NAME': 'user_im',                       #数据库名
        'USER': 'root',                       #用户名
        'PASSWORD': '',                   #密码
        'HOST': '',                           #数据库主机,默认为localhost
        'PORT': '',                           #数据库端口,MySQL默认为3306
        'OPTIONS': {
            'autocommit': True,
        },
    }
}

解决 VSCode 下 Python 报错 80 字符的问题

其实我也希望遵守 80 字符,但是 Django 官方的配置文件中就存在超过 80 个字符的行,这就没办法了,只好扩大要求。

我的 VSCode 使用的是 Pylint,所以可以通过在编辑器设置中,添加如下代码实现。

"python.linting.pylintArgs": [
        "--max-line-length=100"
    ],

将限制放宽到 100 个字符,不会太影响视觉,也能很好的符合规范。

七星主题修复的问题

前段时间承接了 李长太老师的博客,由于我惯用 PHP 7 ,所以李老师的博客也被我放在了 PHP 7 的站点上,但是由于使用的主题是第三方仿的,在使用中出现了非常多的问题。
比如:无法正常加载主题设置项、开启 Debug 后显示非常多的报错。在这里记录一下,以备后用。

建议给has_cap传入一个参数!用户级别已被废弃,请改用能力。

这是因为使用的函数调用的是传统的 1,2,3来表示权限,但是用户等级早已弃用,将其中的用户等级修改为权限名即可。

add_menu_page("主题设置", "主题设置", '10', 'sevenstar_theme', array(&$this,'sevenStar_Theme_Options_Form'),'dashicons-carrot','777');
// 改为
add_menu_page("主题设置", "主题设置", 'manage_options', 'sevenstar_theme', array(&$this,'sevenStar_Theme_Options_Form'),'dashicons-carrot','777');

无法加载后台设置项目

这一块主要是渲染表单出了问题,所以这里就只需要将对应的用法改为 php7 的即可。

$this->$option['type']( $option )
// 改为
{$option['type']}( $option );

使用类名作为构造函数

这个更为简单,只需将类名对应的构造函数改为 __construct即可

laravel

Laravel 的 验证旧密码的验证代码

更新密码这是一个非常常用的功能,我们需要为用户提供一个更改密码的方式。安全一些的方式是通过验证旧密码,再更新密码,以免由于“记住我”功能导致的密码被盗改。
一般来说,Laravel 的更改密码都是通过 RestPassword Email 来实现的,但是我更倾向用户可以在后台更改。所以,便在这里贴下相关的代码,借助下方的代码,可以实现验证用户密码,旧密码验证通过后,再进行新的密码的更新。
 App\Providers\AppServiceProvider 中的 Boot 方法中添加如下代码。

Validator::extend('password_hash_check', function($attribute, $value, $parameters, $validator) {
            return Hash::check($value , $parameters[0]) ;
        });

在对应的表单请求中,添加如下的调用。

use Auth;
/**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $password = Auth::user()->password;
        return [
            'old_password' => "required|password_hash_check:" . $password,
            "password" => "required|min:6|max:25|confirmed",
        ];
    }

(上述代码采用的是表单请求的方式来进行验证的,使用方法参看:Validation

fd4a959f23df

SnapKit 使用教程推荐

SnapKit 是 Swift 下的一个 AutoLayout 布局框架,非常好用,语法也很简单,这里推荐给大家。同时也给出一些不错的阅读文章。
 
库地址:https://github.com/SnapKit/SnapKit
 
航歌网的教程: