使用Pushover推送群晖系统消息

Pushover是一个消息推送平台,可以给手机、桌面、浏览器发送自定义的推送消息。按照平台购买其客户端,即可享受此平台的永久推送服务。费用如下: 安卓 $5桌面 $5, 即用桌面浏览器的插件发送推送通知,含Chrome,Firefox, Safari。iOS $5 无需购买全部。我自己就只买了iOS平台。 以下例子将在Pushover管理面板搭建“应用”,并且让群晖NAS借助此应用发送推送消息到客户端。 获取USER KEY 当你购买了APP并注册了一个账号,访问 https://pushover.net/ 登录后,即可看到管理控制面板。 在页面右上角有一个“Your User Key”,这类似于你的身份识别码(很重要),将灰色框中的密钥复制,临时粘贴到文本编辑器中备用。 创建应用 用你的账号登录Pushover网站, 在最底部 Your Applications 处点击 Create an Application/API Token Name 为你的应用取一个名字,无特定要求,自己能认出即可,比如“NAS 920+”Description 此应用的描述,可以简短描述下用途,比如“Send message from my nas”URL 此应用的网址,如果没有可以不填。Icon 此应用的图标,要求72x72像素尺寸,PNG图片,可带Alpha通道,将显示在推送消息前面。 填写完成后,勾选从来也没人看的服务协议、初始教程复选框,再点击:“Create Application” ...

2022-04-19 · 1 min · Duke Yin

Windows 11 Security(安全中心)无法打开

解决方法: 以管理员身份运行 PowerShell,执行如下命令: Get-AppxPackage Microsoft.SecHealthUI -AllUsers | Reset-AppxPackage

2022-04-14 · 1 min · Duke Yin

IPv6 iptables Rules

配置防火墙开通ipv6公网 光猫改桥接 用路由器拨号 路由器“在防火墙规则启动后执行”下列脚本 #!/bin/bash ip6tables single-host firewall script Define your command variables ipt6="/sbin/ip6tables" Flush all rules and delete all chains for a clean startup $ipt6 -F $ipt6 -X Zero out all counters $ipt6 -Z Default policies: deny all incoming Unrestricted outgoing $ipt6 -P INPUT DROP $ipt6 -P FORWARD DROP $ipt6 -P OUTPUT ACCEPT ...

2022-03-28 · 2 min · Duke Yin

群晖Docker安装Jellyfin

之所以选用Jellyfin作为主力媒体服务端,是因为Jellyfin不同于Emby和Plex,是一个开源的程序,原生支持硬件解码。 而Emby和Plex需要支付高额的会员费,才能享受硬件解码。 硬件解码的好处是,带有核显的CPU可以充分利用核显去做视频解码工作,而软件层面禁用了硬件解码,相当于全部负担都压在了CPU上,核显却闲着。 虽然群晖的Community套件源里也有Jellyfin,但是比较致命的是,经过实测套件版的Jellyfin不支持硬件解码,每当你在远程切换清晰度需要转码的时候,占用CPU会非常高,所以虽然Docker版Jellyfin安装麻烦、升级麻烦,但是为了硬解,为了长远的使用,还是建议使用Docker版。 首先要在群晖的套件中心安装Docker。 打开Docker后,左侧找到注册表。 右上搜索jellyfin 双击下载。选Latest最新版。 国内下载会比较慢,可搜索使用Docker加速镜像,本文不再赘述。 待下载完成后,就可以在左侧映像栏看到Jellyfin的包,相当于Windows的安装包镜像。 因为Docker里的应用相当于是个封闭的空间,我们要想往里面存放文件必须要映射本地文件夹,所以用FileStation先新建几个目录: docker目录下面新建一个文件夹取名jellyfin,jellyfin下面新建三个文件夹 dockerjellyfinconfigfontstranscodedejavu 包括jellyfin文件夹在内的所有文件夹,需要修改权限到everyone 可读写。 其中transcode是可选的。我用来存放转码文件,jellyfin默认会存到其他地方。 然后我们回到Docker,映像,双击启动。 然后勾选使用高级权限执行容器 再点击高级设置。顶部选择存储空间 ...

2022-03-20 · 1 min · Duke Yin

JavaScript 小功能

?? Nullish coalescing operator 为了避免变量为null或者undefined 例如: number = number ?? 0 假如number存在,则赋值。要是number不存在或为null,则给number赋值0 上语等同于: if(number == null){ number = 0 } ? Ternary Operator 避免子项不存在: apple = forest.tree.apple apple = forest?.tree?.apple apple = tree.apple?.[0] apple = tree.apple[0] 如果forest存在,再继续往下取其tree,如果tree存在,再往下取其apple,不会因为子项不存在报错。 forest.Pick() forest.Pick?.() 避免function不存在。先检查function是否存在且是一个function,如果不存在则不继续,也不会报错。 ...

2022-02-13 · 1 min · Duke Yin

Gitbook的一些坑

版本 Node.js 要使用使用老的 12.18.1 版本才行 windows 64位安装包是 node-v12.18.1-x64.msi linux安装包是 node-v12.18.1-linux-x64.tar.gz 最新版对Gitbook会有各种问题,不论是稳定版还是尝鲜版 停在 “Installing GitBook 3.2.*” 安装后,第一次执行任何gitbook命令,会出现: CLI version: 3.2.* Installing Gitbook 3.2.* \ 小斜杆会一直转啊转 解决方法:没什么好的解决方法,只能等着。 我等了大概有半小时,安装完成了。 有人说要替换Node.js的源,改成淘宝源,事实上是极其不推荐这么做的。非官方的,不值得信赖,所以只能等。 Linux下安装后Command not found 需要找到 /root/.bash_profile 编辑(每个安装的路径可能不一样) 在PATH变量的最后添加如下: :$(npm prefix -g)/bin 保存 在回到/root/目录下,执行: source .bash_profile 然后再执行gitbook -V就不会找不到命令了。 ...

2022-01-30 · 1 min · Duke Yin

群晖DSM7修改Emby默认的8096端口

如果你首先安装了Emby,再想安装套件版Jellyfin,会提示你8096端口被占用,不能安装。 但是可恶的Emby并没有在后台提供修改服务端默认8096端口的设置,有一个外部端口设置了根本没有用。 这时候修改Emby默认8096端口需要用SSH登录群晖 在改之前需要将Emby套件停用、关闭,然后SSH: sudo -i 获取root权限 然后进入 /volume1/@appdata/EmbyServer/config/ Volume根据你安装套件的位置决定,有些人设置了安装到第二个存储,就是 volume2 vi修改system.xml 把8096改成你想要的端口数字,但是注意不能和已有的重复。 这还没完,emby还在别处声明了这个端口 这时候再ssh用root权限进入 /usr/local/etc/services.d/ vi修改EmbyServer.sc文件,同样把8096改成你上面修改的端口数字,要相同。 这时候才算改完。 然后启动emby套件,你的默认不加密端口就修改了,不和jellfin冲突。

2022-01-19 · 1 min · Duke Yin

WordPress主题文件结构

示例1 air-light theme themes/your-theme-name/ # → Root of your air-light based theme ├── 404.php # → Default "not found" page ├── archive.php # → Default archive template ├── bin/ # → Scripts │ ├── ... # → This scripts are used for generating themes or new Air-light version │ └── newtheme.sh # → The start script for creating YOUR own theme out of Air-light ├── comments.php # → Default comments template (can be deleted if not needed) ├── css/ # → CSS files for production (never edit) │ ├── dev/ # → Unminified stylesheet files for debugging (never edit) │ └── prod/ # → Minified stylesheet files for production (never edit) ├── fonts/ # → Your webfont files (woff, woff2, ttf needed) ├── footer.php # → Site footer ├── front-page.php # → Demo front-page template (not included in wordpress.org version) ├── functions.php # → Set up your theme basic settings ├── gulp/ # → Gulp related settings and tasks │ └── ... # ├── gulpfile.js # → Core gulpfile for air-light development ├── header.php # → Site header ├── images/ # → Your theme images, for example default featured images and placeholders ├── inc/ # → Theme core PHP │ ├── hooks/ # → Hook functions │ ├── includes/ # → Non-template features │ ├── template-tags/ # → Template functions and helpers │ ├── post-types/ # → Custom Post Types │ ├── taxonomies/ # → Custom Taxonomies │ ├── hooks.php # → All hooks the theme runs are here │ ├── includes.php # → Include non-template features │ └── template-tags.php # → Include template functions and helpers ├── js/ # → JavaScript files │ ├── dev/ # → Unminified script files for debugging (never edit) │ ├── prod/ # → Minified script files for production (never edit) │ └── src/ # → Script files for development (edit these) │ ├── navigation.js # → Accessible multi-level navigation (from 3.4.5) │ ├── front-end.js # → Theme core JavaScript file (from 1.0.0, before: scripts.js) │ └── sticky-nav.js # → Sticky nav functionality (optional) ├── package.json # → Node.js dependencies and scripts ├── page.php # → Default page template ├── phpcs.xml # → PHPCodeSniffer/WordPress Theme Coding Standards settings ├── sass/ # → SCSS files for CSS development │ ├── base/ # → Theme base styles │ │ └── _accessibility.scss # → Accessibility │ ├── global.scss # → Core CSS file that calls all the modular files │ ├── gutenberg-editor-styles.scss # → Core CSS file for Gutenberg editor and blocks │ ├── components/ # → Add your style components to this folder │ ├── features/ # → Fuctionality styles │ │ ├── _gallery.scss # → Default WordPress gallery feature styles │ │ ├── _gravity-forms.scss # → Defaults for Gravity Forms + WCAG 2.0 form fields for Gravity Forms │ │ ├── _lazyload.scss # → Styles for air-helper lazyload feature (lazyload.js needed) │ │ ├── _top.scss # → Back to top styles │ │ ├── _pagination.scss # → Numbered pagination styles │ │ ├── _sticky-nav.scss # → Sticky nav styles (not included by default) │ │ └── _slick.scss # → Styles for slick-carousel (not included by default) │ ├── gutenberg/ # → Gutenberg block styles for both core and custom blocks │ │ └── ... # → WIP │ ├── helpers/ # → Helper mixins and functions │ │ ├── _animations.scss # → Animations and effects │ │ ├── _aspect-ratio.scss # → A mixin for aspect ratio │ │ ├── _general.scss # → Mixins for general use, or helpers of other mixins │ │ ├── _grid.scss # → CSS Grid helper mixin │ │ └── _typography.scss # → Typography style mixins │ ├── layout/ # → Fuctionality styles │ │ ├── _forms.scss # → Styles for general forms and Gravity Forms │ │ ├── _site-footer.scss # → Footer styles │ │ ├── _site-header.scss # → Header styles │ │ ├── _typography.scss # → Defaults for typography and fonts │ │ └── _gutenberg.scss # → Site-side styles for Gutenberg (pratically for single.php) │ ├── navigation/ # → Navigation styles │ │ ├── _burger.scss # → Burger styles and animations │ │ ├── _nav-desktop.scss # → Desktop navigation styles and dropdowns │ │ └── _nav-mobile.scss # → Navigation styles for mobile and touch devices │ ├── variables/ # → Configurations │ │ ├── _breakpoints.scss # → Widths from mobile to TV screens │ │ ├── _colors.scss # → All the colors of the theme │ │ ├── _font-face.scss # → Define font variables here │ │ ├── _font-family.scss # → Define font paths │ │ ├── _font-size.scss # → Define font related sizes │ │ ├── _forms.scss # → Form related variables │ │ └── _spacings.scss # → Margins and paddings │ ├── views/ # → Templates, archives, pages and views go here │ │ ├── _404.scss # → Default 404 styles │ │ ├── _comments.scss # → Comment styles (optional) │ │ ├── _front-page.scss # → Front page styles (empty by default) │ │ └── _search.scss # → Default search result styles ├── screenshot.png # → Theme screenshot for WP admin ├── search.php # → Default search view ├── sidebar.php # → Default sidebar (optional) ├── single.php # → Default single article or CPT view ├── style.css # → Theme meta information ├── svg/ # → Your theme SVG graphics and icons └── template-parts/ # → WordPress template parts. Modules go under this folder. ├── header/ # → Header modules │ ├── branding.php # → Site branding │ ├── navigation.php # → Site navigation └── hero.php # → Default hero 示例2 Twenty Seventeen Theme ...

2022-01-13 · 5 min · Duke Yin

PHP将英文字符转为URL友好字符串

$str = 'Álix----_Ãxel!?!?%%%'; strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($str, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-')); // will return alix-axel 但中文字符也会被删掉,此方法仅适用于拉丁语系字符串。

2021-12-30 · 1 min · Duke Yin

PHP 判断字符串是中文还是英文

$str = 'you are 你是'; //定义待检测字符串 function utf8_str($str){ $mb = mb_strlen($str,'utf-8'); $st = strlen($str); if($st==$mb){ //纯英文 return '纯英文'; }elseif($st%$mb==0 && $st%3==0){ //纯汉字 return '纯汉字'; }else{ //汉英混合 return '汉英混合'; } } echo '字符串:<span style="color:red">'.$str.'</span>,是<span style="color:red">'.utf8_str($str).'</span>';

2021-12-30 · 1 min · Duke Yin