update
12
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
|
patreon: # Replace with a single Patreon username
|
||||||
|
open_collective: # Replace with a single Open Collective username
|
||||||
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
liberapay: # Replace with a single Liberapay username
|
||||||
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
|
otechie: # Replace with a single Otechie username
|
||||||
|
custom: ['https://mabbs.github.io/README.html']
|
||||||
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<!-- 欢迎提交PR!如果是修复 BUG 或 typo ,可直接删除此模板。若是添加友链,请确认满足以下条件(将 [ ] 替换为 [x] 打勾): -->
|
||||||
|
|
||||||
|
- [ ] 这个 PR 是关于添加Links的
|
||||||
|
- [ ] 我在申请之前加上了[贵站](https://mabbs.github.io)友链
|
||||||
|
- [ ] 我的网站 **全站启用 HTTPS**
|
||||||
|
- [ ] 我的博客满足: **原创文章比例>80%,数量>10** 的要求
|
||||||
|
- [ ] 我的网站满足 **站点稳定,不弃坑** 的要求
|
||||||
|
- [ ] 我的链接列表不需要客户端渲染 <!-- 如有请在下方列出合理原因 -->
|
||||||
|
|
||||||
|
我的网站是: <!-- 例如:https://example.com -->
|
||||||
28
.gitlab-ci.yml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# This file is a template, and might need editing before it works on your project.
|
||||||
|
# To contribute improvements to CI/CD templates, please follow the Development guide at:
|
||||||
|
# https://docs.gitlab.com/ee/development/cicd/templates.html
|
||||||
|
# This specific template is located at:
|
||||||
|
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Pages/Jekyll.gitlab-ci.yml
|
||||||
|
|
||||||
|
# Template project: https://gitlab.com/pages/jekyll
|
||||||
|
# Docs: https://docs.gitlab.com/ee/pages/
|
||||||
|
image: ruby:2.7
|
||||||
|
|
||||||
|
variables:
|
||||||
|
JEKYLL_ENV: production
|
||||||
|
LC_ALL: C.UTF-8
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- gem install bundler -v 2.4.22
|
||||||
|
- bundle install
|
||||||
|
|
||||||
|
pages:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- bash deploy.sh
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- public
|
||||||
|
only:
|
||||||
|
variables:
|
||||||
|
- $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||||
16
.readthedocs.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Required
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
build:
|
||||||
|
os: ubuntu-24.04
|
||||||
|
tools:
|
||||||
|
ruby: "3.3"
|
||||||
|
|
||||||
|
commands:
|
||||||
|
- gem install bundler
|
||||||
|
- bundle install
|
||||||
|
- mkdir Mabbs
|
||||||
|
- curl -L -o Mabbs/README.md https://github.com/Mabbs/Mabbs/raw/main/README.md
|
||||||
|
- bundle exec jekyll build --destination $READTHEDOCS_OUTPUT/html
|
||||||
|
- tar czvf MayxBlog.tgz -C $READTHEDOCS_OUTPUT html
|
||||||
|
- mv MayxBlog.tgz $READTHEDOCS_OUTPUT/html
|
||||||
BIN
.sass-cache/b7229e7572a469653973b95cb673e34e5d9c6d06/fonts.scssc
Normal file
14
404.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
title: 404 - 找不到页面
|
||||||
|
---
|
||||||
|
|
||||||
|
# 找不到页面
|
||||||
|
你访问的资源 <code><script>document.write(window.location.pathname)</script></code> 不存在或者可能已经被永久移除。
|
||||||
|
|
||||||
|
或者看看近期的其他文章?
|
||||||
|
|
||||||
|
{% for post in site.posts limit:10 %}
|
||||||
|
- {{ post.date | date: "%Y/%m/%d" }} - [{{ post.title }}{% if post.layout == "encrypt" %} [加密] {% endif %}]({{ post.url }})
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
1
5b60338bca964816af2f0b76965a1b84.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
5b60338bca964816af2f0b76965a1b84
|
||||||
139
BlogCard.svg
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
---
|
||||||
|
---
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="495"
|
||||||
|
height="195"
|
||||||
|
viewBox="0 0 495 195"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<style>
|
||||||
|
.header {
|
||||||
|
font: 600 18px 'Segoe UI', Ubuntu, Sans-Serif;
|
||||||
|
fill: #fff;
|
||||||
|
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat {
|
||||||
|
font: 600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif; fill: #9f9f9f;
|
||||||
|
}
|
||||||
|
.stagger {
|
||||||
|
opacity: 0;
|
||||||
|
animation: fadeInAnimation 0.3s ease-in-out forwards;
|
||||||
|
}
|
||||||
|
.rank-text {
|
||||||
|
font: 800 100px 'Segoe UI', Ubuntu, Sans-Serif; fill: #66ccff;
|
||||||
|
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bold { font-weight: 700 }
|
||||||
|
.icon {
|
||||||
|
fill: #79ff97;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Animations */
|
||||||
|
@keyframes scaleInAnimation {
|
||||||
|
from {
|
||||||
|
transform: translate(-5px, 5px) scale(0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate(-5px, 5px) scale(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes fadeInAnimation {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<rect
|
||||||
|
data-testid="card-bg"
|
||||||
|
x="0.5"
|
||||||
|
y="0.5"
|
||||||
|
rx="4.5"
|
||||||
|
height="99%"
|
||||||
|
stroke="#e4e2e2"
|
||||||
|
width="494"
|
||||||
|
fill="#151515"
|
||||||
|
stroke-opacity="1"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<g
|
||||||
|
data-testid="card-title"
|
||||||
|
transform="translate(25, 35)"
|
||||||
|
>
|
||||||
|
<g transform="translate(0, 0)">
|
||||||
|
<text
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
class="header"
|
||||||
|
data-testid="header"
|
||||||
|
>Mayx's Blog Article</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g
|
||||||
|
data-testid="main-card-body"
|
||||||
|
transform="translate(0, 55)"
|
||||||
|
>
|
||||||
|
|
||||||
|
<g transform="translate(370, 47.5)">
|
||||||
|
<g class="rank-text">
|
||||||
|
<text
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
alignment-baseline="central"
|
||||||
|
dominant-baseline="central"
|
||||||
|
text-anchor="middle"
|
||||||
|
>
|
||||||
|
M
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<svg x="0" y="0">
|
||||||
|
<g transform="translate(0, 0)">
|
||||||
|
<g class="stagger" style="animation-delay: 450ms" transform="translate(25, 0)">
|
||||||
|
<line x1="12" y1="6.25" x2="19" y2="6.25"
|
||||||
|
style="stroke:rgb(255,255,255);stroke-width:2"/>
|
||||||
|
<text class="stat bold" x="25" y="12.5">{{ site.posts[0].title | truncate: 18 }}</text>
|
||||||
|
</g>
|
||||||
|
</g><g transform="translate(0, 25)">
|
||||||
|
<g class="stagger" style="animation-delay: 600ms" transform="translate(25, 0)">
|
||||||
|
<line x1="12" y1="6.25" x2="19" y2="6.25"
|
||||||
|
style="stroke:rgb(255,255,255);stroke-width:2"/>
|
||||||
|
<text class="stat bold" x="25" y="12.5">{{ site.posts[1].title | truncate: 18 }}</text>
|
||||||
|
</g>
|
||||||
|
</g><g transform="translate(0, 50)">
|
||||||
|
<g class="stagger" style="animation-delay: 750ms" transform="translate(25, 0)">
|
||||||
|
<line x1="12" y1="6.25" x2="19" y2="6.25"
|
||||||
|
style="stroke:rgb(255,255,255);stroke-width:2"/>
|
||||||
|
<text class="stat bold" x="25" y="12.5">{{ site.posts[2].title | truncate: 18 }}</text>
|
||||||
|
</g>
|
||||||
|
</g><g transform="translate(0, 75)">
|
||||||
|
<g class="stagger" style="animation-delay: 900ms" transform="translate(25, 0)">
|
||||||
|
<line x1="12" y1="6.25" x2="19" y2="6.25"
|
||||||
|
style="stroke:rgb(255,255,255);stroke-width:2"/>
|
||||||
|
<text class="stat bold" x="25" y="12.5">{{ site.posts[3].title | truncate: 18 }}</text>
|
||||||
|
</g>
|
||||||
|
</g><g transform="translate(0, 100)">
|
||||||
|
<g class="stagger" style="animation-delay: 1050ms" transform="translate(25, 0)">
|
||||||
|
<line x1="12" y1="6.25" x2="19" y2="6.25"
|
||||||
|
style="stroke:rgb(255,255,255);stroke-width:2"/>
|
||||||
|
<text class="stat bold" x="25" y="12.5">{{ site.posts[4].title | truncate: 18 }}</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
|
||||||
20
Gemfile
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
source "https://rubygems.org"
|
||||||
|
gem "jekyll", "~> 3.9.3"
|
||||||
|
group :jekyll_plugins do
|
||||||
|
gem "jekyll-gist", "~> 1.5.0"
|
||||||
|
gem "jekyll-coffeescript", "~> 1.1.1"
|
||||||
|
gem "jekyll-assets", "~> 1.0.0"
|
||||||
|
gem "jekyll-sitemap", "~> 1.4.0"
|
||||||
|
gem "jekyll-feed", "~> 0.15.1"
|
||||||
|
gem "jekyll-include-cache", "~> 0.2.1"
|
||||||
|
gem "jekyll-readme-index", "~> 0.3.0"
|
||||||
|
gem "jekyll-default-layout", "~> 0.1.5"
|
||||||
|
gem "jekyll-titles-from-headings", "~> 0.5.3"
|
||||||
|
gem "jekyll-theme-minimal"
|
||||||
|
gem "jekyll-paginate", "~> 1.1.0"
|
||||||
|
gem "kramdown-parser-gfm", "~> 1.1.0"
|
||||||
|
gem "kramdown", "~> 2.3.2"
|
||||||
|
gem "csv"
|
||||||
|
gem "base64"
|
||||||
|
gem "bigdecimal"
|
||||||
|
end
|
||||||
149
Gemfile.lock
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
addressable (2.8.7)
|
||||||
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
|
base64 (0.3.0)
|
||||||
|
bigdecimal (2.0.0)
|
||||||
|
coffee-script (2.4.1)
|
||||||
|
coffee-script-source
|
||||||
|
execjs
|
||||||
|
coffee-script-source (1.11.1)
|
||||||
|
colorator (1.1.0)
|
||||||
|
concurrent-ruby (1.3.5)
|
||||||
|
csv (3.1.2)
|
||||||
|
em-websocket (0.5.3)
|
||||||
|
eventmachine (>= 0.12.9)
|
||||||
|
http_parser.rb (~> 0)
|
||||||
|
eventmachine (1.2.7)
|
||||||
|
execjs (2.10.0)
|
||||||
|
faraday (2.8.1)
|
||||||
|
base64
|
||||||
|
faraday-net_http (>= 2.0, < 3.1)
|
||||||
|
ruby2_keywords (>= 0.0.4)
|
||||||
|
faraday-net_http (3.0.2)
|
||||||
|
fastimage (1.8.1)
|
||||||
|
addressable (~> 2.3, >= 2.3.5)
|
||||||
|
ffi (1.17.2)
|
||||||
|
forwardable-extended (2.6.0)
|
||||||
|
hike (1.2.3)
|
||||||
|
http_parser.rb (0.8.0)
|
||||||
|
i18n (1.14.7)
|
||||||
|
concurrent-ruby (~> 1.0)
|
||||||
|
jekyll (3.9.5)
|
||||||
|
addressable (~> 2.4)
|
||||||
|
colorator (~> 1.0)
|
||||||
|
em-websocket (~> 0.5)
|
||||||
|
i18n (>= 0.7, < 2)
|
||||||
|
jekyll-sass-converter (~> 1.0)
|
||||||
|
jekyll-watch (~> 2.0)
|
||||||
|
kramdown (>= 1.17, < 3)
|
||||||
|
liquid (~> 4.0)
|
||||||
|
mercenary (~> 0.3.3)
|
||||||
|
pathutil (~> 0.9)
|
||||||
|
rouge (>= 1.7, < 4)
|
||||||
|
safe_yaml (~> 1.0)
|
||||||
|
jekyll-assets (1.0.0)
|
||||||
|
fastimage (~> 1.6)
|
||||||
|
jekyll (>= 2)
|
||||||
|
mini_magick (~> 4.1)
|
||||||
|
sass (~> 3.2)
|
||||||
|
sprockets (~> 2.10)
|
||||||
|
sprockets-helpers
|
||||||
|
sprockets-sass
|
||||||
|
jekyll-coffeescript (1.1.1)
|
||||||
|
coffee-script (~> 2.2)
|
||||||
|
coffee-script-source (~> 1.11.1)
|
||||||
|
jekyll-default-layout (0.1.5)
|
||||||
|
jekyll (>= 3.0, < 5.0)
|
||||||
|
jekyll-feed (0.15.1)
|
||||||
|
jekyll (>= 3.7, < 5.0)
|
||||||
|
jekyll-gist (1.5.0)
|
||||||
|
octokit (~> 4.2)
|
||||||
|
jekyll-include-cache (0.2.1)
|
||||||
|
jekyll (>= 3.7, < 5.0)
|
||||||
|
jekyll-paginate (1.1.0)
|
||||||
|
jekyll-readme-index (0.3.0)
|
||||||
|
jekyll (>= 3.0, < 5.0)
|
||||||
|
jekyll-sass-converter (1.5.2)
|
||||||
|
sass (~> 3.4)
|
||||||
|
jekyll-seo-tag (2.8.0)
|
||||||
|
jekyll (>= 3.8, < 5.0)
|
||||||
|
jekyll-sitemap (1.4.0)
|
||||||
|
jekyll (>= 3.7, < 5.0)
|
||||||
|
jekyll-theme-minimal (0.2.0)
|
||||||
|
jekyll (> 3.5, < 5.0)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-titles-from-headings (0.5.3)
|
||||||
|
jekyll (>= 3.3, < 5.0)
|
||||||
|
jekyll-watch (2.2.1)
|
||||||
|
listen (~> 3.0)
|
||||||
|
kramdown (2.3.2)
|
||||||
|
rexml
|
||||||
|
kramdown-parser-gfm (1.1.0)
|
||||||
|
kramdown (~> 2.0)
|
||||||
|
liquid (4.0.4)
|
||||||
|
listen (3.9.0)
|
||||||
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
|
mercenary (0.3.6)
|
||||||
|
mini_magick (4.13.2)
|
||||||
|
multi_json (1.15.0)
|
||||||
|
octokit (4.25.1)
|
||||||
|
faraday (>= 1, < 3)
|
||||||
|
sawyer (~> 0.9)
|
||||||
|
pathutil (0.16.2)
|
||||||
|
forwardable-extended (~> 2.6)
|
||||||
|
public_suffix (5.1.1)
|
||||||
|
rack (1.6.13)
|
||||||
|
rb-fsevent (0.11.2)
|
||||||
|
rb-inotify (0.11.1)
|
||||||
|
ffi (~> 1.0)
|
||||||
|
rexml (3.4.1)
|
||||||
|
rouge (3.30.0)
|
||||||
|
ruby2_keywords (0.0.5)
|
||||||
|
safe_yaml (1.0.5)
|
||||||
|
sass (3.7.4)
|
||||||
|
sass-listen (~> 4.0.0)
|
||||||
|
sass-listen (4.0.0)
|
||||||
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
|
sawyer (0.9.2)
|
||||||
|
addressable (>= 2.3.5)
|
||||||
|
faraday (>= 0.17.3, < 3)
|
||||||
|
sprockets (2.12.5)
|
||||||
|
hike (~> 1.2)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
rack (~> 1.0)
|
||||||
|
tilt (~> 1.1, != 1.3.0)
|
||||||
|
sprockets-helpers (1.4.0)
|
||||||
|
sprockets (>= 2.2)
|
||||||
|
sprockets-sass (1.3.1)
|
||||||
|
sprockets (~> 2.0)
|
||||||
|
tilt (~> 1.1)
|
||||||
|
tilt (1.4.1)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
x86_64-linux
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
base64
|
||||||
|
bigdecimal
|
||||||
|
csv
|
||||||
|
jekyll (~> 3.9.3)
|
||||||
|
jekyll-assets (~> 1.0.0)
|
||||||
|
jekyll-coffeescript (~> 1.1.1)
|
||||||
|
jekyll-default-layout (~> 0.1.5)
|
||||||
|
jekyll-feed (~> 0.15.1)
|
||||||
|
jekyll-gist (~> 1.5.0)
|
||||||
|
jekyll-include-cache (~> 0.2.1)
|
||||||
|
jekyll-paginate (~> 1.1.0)
|
||||||
|
jekyll-readme-index (~> 0.3.0)
|
||||||
|
jekyll-sitemap (~> 1.4.0)
|
||||||
|
jekyll-theme-minimal
|
||||||
|
jekyll-titles-from-headings (~> 0.5.3)
|
||||||
|
kramdown (~> 2.3.2)
|
||||||
|
kramdown-parser-gfm (~> 1.1.0)
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.2.5
|
||||||
339
Live2dHistoire/LICENSE
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc., [http://fsf.org/]
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
{description}
|
||||||
|
Copyright (C) 2018 广树
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
{signature of Ty Coon}, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
||||||
101
Live2dHistoire/README.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# Live2d的看板娘——伊斯特瓦尔(Histoire)
|
||||||
|
[Original Repo](https://github.com/eeg1412/Live2dHistoire)
|
||||||
|
#### 可用于网页端显示Live2D版的伊斯特瓦尔(Histoire) emlog插件版可以看这里:[传送门](https://www.wikimoe.com/?post=75)
|
||||||
|
#### 基于[《给博客添加能动的看板娘(Live2D)-将其添加到网页上吧》](https://imjad.cn/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02)上的源码进行修改。
|
||||||
|
#### 在原先的基础上加上了如下功能:
|
||||||
|
|
||||||
|
1.可以基于图灵机器人的聊天功能(需要自己写接口,默认隐藏)。
|
||||||
|
2.能够随意移动并记录位置(关闭浏览器后失效)。
|
||||||
|
3.能够随意唤醒或者关闭并记录状态。
|
||||||
|
4.自动判断浏览器是否为IE或者手机浏览器,如果判断为true则不加载伊斯。
|
||||||
|
5.给骚扰伊斯加了限制频率,不能狂骚扰伊斯了。
|
||||||
|
|
||||||
|
### 准备工作
|
||||||
|
首先到下载代码。
|
||||||
|
|
||||||
|
然后把解压出来的文件夹改名为:live2d 。
|
||||||
|
|
||||||
|
### 正式开工,文字部分参考自[在 Web 上展示 Live2D 吧!](https://github.com/galnetwen/Live2D)
|
||||||
|
在需要页面的头部文件(header)引入界面样式,在 head 标签内插入如下代码:
|
||||||
|
```html
|
||||||
|
<link rel="stylesheet" href="/live2d/css/live2d.css" />
|
||||||
|
```
|
||||||
|
|
||||||
|
在 需要页面的body 标签内找到合适的位置插入 Live2D 看板娘的元素,按照 Html 书写规范写
|
||||||
|
```html
|
||||||
|
<div id="landlord" style="left:5px;bottom:0px;">
|
||||||
|
<div class="message" style="opacity:0"></div>
|
||||||
|
<canvas id="live2d" width="500" height="560" class="live2d"></canvas>
|
||||||
|
<div class="live_talk_input_body">
|
||||||
|
<div class="live_talk_input_name_body">
|
||||||
|
<input name="name" type="text" class="live_talk_name white_input" id="AIuserName" autocomplete="off" placeholder="你的名字" />
|
||||||
|
</div>
|
||||||
|
<div class="live_talk_input_text_body">
|
||||||
|
<input name="talk" type="text" class="live_talk_talk white_input" id="AIuserText" autocomplete="off" placeholder="要和我聊什么呀?"/>
|
||||||
|
<button type="button" class="live_talk_send_btn" id="talk_send">发送</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input name="live_talk" id="live_talk" value="1" type="hidden" />
|
||||||
|
<div class="live_ico_box">
|
||||||
|
<div class="live_ico_item type_info" id="showInfoBtn"></div>
|
||||||
|
<div class="live_ico_item type_talk" id="showTalkBtn"></div>
|
||||||
|
<div class="live_ico_item type_music" id="musicButton"></div>
|
||||||
|
<div class="live_ico_item type_youdu" id="youduButton"></div>
|
||||||
|
<div class="live_ico_item type_quit" id="hideButton"></div>
|
||||||
|
<input name="live_statu_val" id="live_statu_val" value="0" type="hidden" />
|
||||||
|
<audio src="" style="display:none;" id="live2d_bgm" data-bgm="0" preload="none"></audio>
|
||||||
|
<input name="live2dBGM" value="音乐地址" type="hidden">
|
||||||
|
<input id="duType" value="douqilai,l2d_caihong" type="hidden">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="open_live2d">召唤伊斯特瓦尔</div>
|
||||||
|
```
|
||||||
|
如果需要BGM支持可以按照上面的例子添加:
|
||||||
|
```html
|
||||||
|
<input name="live2dBGM" value="音乐地址" type="hidden">
|
||||||
|
```
|
||||||
|
在 需要页面的 body 标签结束前插入如下代码:
|
||||||
|
```html
|
||||||
|
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||||
|
<script>
|
||||||
|
var message_Path = '/live2d/';//资源目录,如果目录不对请更改
|
||||||
|
var talkAPI = "";//如果有类似图灵机器人的聊天接口请填写接口路径
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="live2d/js/live2d.js"></script>
|
||||||
|
<script type="text/javascript" src="live2d/js/message.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
鼠标放在页面某个元素上时,需要 Live2D 看板娘提示的请修改 message.json 文件。
|
||||||
|
|
||||||
|
**示例:**
|
||||||
|
|
||||||
|
{
|
||||||
|
"mouseover": [
|
||||||
|
{
|
||||||
|
"selector": ".title a", //此处修改为你页面元素的标签名
|
||||||
|
"text": ["要看看 {text} 么?"] //此处修改为你需要提示的文字
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#searchbox",
|
||||||
|
"text": ["在找什么东西呢,需要帮忙吗?"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"click": [ //此处是 Live2D 看板娘的触摸事件提示
|
||||||
|
{
|
||||||
|
"selector": "#landlord #live2d",
|
||||||
|
"text": ["不要动手动脚的!快把手拿开~~", "真…真的是不知羞耻!","Hentai!", "再摸的话我可要报警了!⌇●﹏●⌇", "110吗,这里有个变态一直在摸我(ó﹏ò。)"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
然后,刷新你的页面,看看效果吧!
|
||||||
|
|
||||||
|
注意路径别弄错了噢 ~
|
||||||
|
PHP 程序推荐使用主题函数获取绝对路径。
|
||||||
|
|
||||||
|
|
||||||
|
### 模型说明
|
||||||
|
本插件仅供学习和交流使用,禁止用于商业用途。
|
||||||
|
本插件用到的模型为《超次元游戏海王星》系列中的伊斯特瓦尔,动作表情则是取自Live2d官网的demo,故版权归各官方所有。
|
||||||
|
原项目使用了 GPL v2 开源协议。
|
||||||
940
Live2dHistoire/live2d/css/live2d.css
Normal file
@@ -0,0 +1,940 @@
|
|||||||
|
#landlord {
|
||||||
|
user-select: none;
|
||||||
|
position: fixed;
|
||||||
|
left: 5px;
|
||||||
|
bottom: 0;
|
||||||
|
width: 250px;
|
||||||
|
height: 280px;
|
||||||
|
z-index: 10000;
|
||||||
|
font-size: 0;
|
||||||
|
/*transition: all .3s ease-in-out;*/
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
#open_live2d{
|
||||||
|
border: 2px solid rgba(75,127,199,0.9);
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgba(74, 59, 114,0.9);
|
||||||
|
padding:2px 10px;
|
||||||
|
color:#fff;
|
||||||
|
height:24px;
|
||||||
|
line-height:24px;
|
||||||
|
font-size:12px;
|
||||||
|
position:fixed;
|
||||||
|
right:5px;
|
||||||
|
bottom:5px;
|
||||||
|
z-index:10000;
|
||||||
|
cursor:pointer;
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
#showInfoBtn{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
#live2d {
|
||||||
|
width: 250px;
|
||||||
|
height: 280px;
|
||||||
|
position: relative;
|
||||||
|
z-index:3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message {
|
||||||
|
opacity: 0;
|
||||||
|
color: #fff;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 250px;
|
||||||
|
height: auto;
|
||||||
|
margin: auto;
|
||||||
|
padding: 7px;
|
||||||
|
bottom: 280px;
|
||||||
|
left: 0px;
|
||||||
|
text-align: center;
|
||||||
|
border: 2px solid rgba(75,127,199,0.9);
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: rgba(74, 59, 114,0.9);
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 400;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
text-transform: uppercase;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
/*animation-delay: 5s;
|
||||||
|
animation-duration: 50s;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-name: shake;
|
||||||
|
animation-timing-function: ease-in-out;*/
|
||||||
|
}
|
||||||
|
.live_talk_input_body{
|
||||||
|
position:absolute;
|
||||||
|
bottom:15px;
|
||||||
|
left:0;
|
||||||
|
width:250px;
|
||||||
|
display:none;
|
||||||
|
z-index:4;
|
||||||
|
}
|
||||||
|
.live_talk_input_text_body{
|
||||||
|
width:250px;
|
||||||
|
box-sizing:border-box;
|
||||||
|
height:28px;
|
||||||
|
border: 2px solid rgb(223, 179, 241);
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: rgba(74, 59, 114,0.9);
|
||||||
|
}
|
||||||
|
.live_talk_input_name_body{
|
||||||
|
width:100px;
|
||||||
|
box-sizing:border-box;
|
||||||
|
height:24px;
|
||||||
|
border: 2px solid rgb(223, 179, 241);
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: rgba(74, 59, 114,0.9);
|
||||||
|
margin-bottom:3px;
|
||||||
|
}
|
||||||
|
.live_talk_name{
|
||||||
|
background-color:transparent;
|
||||||
|
border:0px;
|
||||||
|
margin:0;
|
||||||
|
width:66px;
|
||||||
|
height:20px;
|
||||||
|
line-height:20px;
|
||||||
|
text-align:center;
|
||||||
|
font-size:12px;
|
||||||
|
color:#fff;
|
||||||
|
outline:none;
|
||||||
|
box-sizing:border-box;
|
||||||
|
padding:0 3px;
|
||||||
|
}
|
||||||
|
.live_talk_talk{
|
||||||
|
background-color:transparent;
|
||||||
|
border:0px;
|
||||||
|
margin:0;
|
||||||
|
width:206px;
|
||||||
|
height:24px;
|
||||||
|
line-height:24px;
|
||||||
|
text-align:left;
|
||||||
|
font-size:12px;
|
||||||
|
color:#fff;
|
||||||
|
outline:none;
|
||||||
|
box-sizing:border-box;
|
||||||
|
padding:0 3px;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
.live_talk_send_btn{
|
||||||
|
background-color:transparent;
|
||||||
|
color:#fff;
|
||||||
|
border:0px;
|
||||||
|
cursor:pointer;
|
||||||
|
padding:0 4px;
|
||||||
|
border-left:1px solid #fff;
|
||||||
|
font-size:12px;
|
||||||
|
float:right;
|
||||||
|
height:18px;
|
||||||
|
line-height:18px;
|
||||||
|
outline:none;
|
||||||
|
margin:3px 0 0 0;
|
||||||
|
}
|
||||||
|
.white_input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
|
||||||
|
color: #E4E4E4;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white_input::-moz-placeholder { /* Mozilla Firefox 19+*/
|
||||||
|
color: #E4E4E4;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white_input:-ms-input-placeholder {
|
||||||
|
color: #E4E4E4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white_input::-webkit-input-placeholder {
|
||||||
|
color: #E4E4E4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.hide-button {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
right: 0;
|
||||||
|
/* bottom: 30px; */
|
||||||
|
display: none;
|
||||||
|
overflow: hidden;
|
||||||
|
/* padding: 4px; */
|
||||||
|
width: 60px;
|
||||||
|
height: 20px;
|
||||||
|
border: 1px solid rgba(255,137,255,.4);
|
||||||
|
border-radius: 12px;
|
||||||
|
background: rgba(255,137,255,.2);
|
||||||
|
box-shadow: 0 3px 15px 2px rgba(255,137,255,.4);
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hide-button:hover {
|
||||||
|
border: 1px solid #f4a7b9;
|
||||||
|
background: #f4f6f8;
|
||||||
|
}
|
||||||
|
.live_ico_box{
|
||||||
|
width:15px;
|
||||||
|
position:absolute;
|
||||||
|
z-index:5;
|
||||||
|
right:0;
|
||||||
|
top:10px;
|
||||||
|
opacity:0.9;
|
||||||
|
}
|
||||||
|
.live_ico_item{
|
||||||
|
width:15px;
|
||||||
|
height: 20px;
|
||||||
|
cursor:pointer;
|
||||||
|
background-position:center center;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-size:15px;
|
||||||
|
}
|
||||||
|
.live_ico_item.type_talk{
|
||||||
|
background-image:url(../images/talk.png);
|
||||||
|
}
|
||||||
|
.live_ico_item.type_quit{
|
||||||
|
background-image:url(../images/quite.png);
|
||||||
|
}
|
||||||
|
.live_ico_item.type_info{
|
||||||
|
background-image:url(../images/info.png);
|
||||||
|
}
|
||||||
|
.live_ico_item.type_music{
|
||||||
|
background-image:url(../images/music.png);
|
||||||
|
}
|
||||||
|
.live_ico_item.type_youdu{
|
||||||
|
background-image:url(../images/youdu.png);
|
||||||
|
}
|
||||||
|
.live_ico_item.type_music.play{
|
||||||
|
background-image:url(../images/pasue.png);
|
||||||
|
}
|
||||||
|
.live_ico_item.type_youdu.doudong{
|
||||||
|
-webkit-animation-name: shake-little;
|
||||||
|
-ms-animation-name: shake-little;
|
||||||
|
animation-name: shake-little;
|
||||||
|
-webkit-animation-duration: 100ms;
|
||||||
|
-ms-animation-duration: 100ms;
|
||||||
|
animation-duration: 100ms;
|
||||||
|
-webkit-animation-iteration-count: infinite;
|
||||||
|
-ms-animation-iteration-count: infinite;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
-webkit-animation-timing-function: ease-in-out;
|
||||||
|
-ms-animation-timing-function: ease-in-out;
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
-webkit-animation-delay: 0s;
|
||||||
|
-ms-animation-delay: 0s;
|
||||||
|
animation-delay: 0s;
|
||||||
|
-webkit-animation-play-state: running;
|
||||||
|
-ms-animation-play-state: running;
|
||||||
|
animation-play-state: running
|
||||||
|
}
|
||||||
|
.douqilai,.douqilai *{
|
||||||
|
animation: shake-it .5s reverse infinite cubic-bezier(0.68, -0.55, 0.27, 1.55);
|
||||||
|
}
|
||||||
|
.l2d_caihong{
|
||||||
|
animation: rainbow 1.5s infinite;
|
||||||
|
}
|
||||||
|
@media (max-width: 860px) {
|
||||||
|
#landlord {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes shake {
|
||||||
|
2% {
|
||||||
|
transform: translate(0.5px, -1.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
4% {
|
||||||
|
transform: translate(0.5px, 1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
6% {
|
||||||
|
transform: translate(1.5px, 1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
8% {
|
||||||
|
transform: translate(2.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
10% {
|
||||||
|
transform: translate(0.5px, 2.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
12% {
|
||||||
|
transform: translate(1.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
14% {
|
||||||
|
transform: translate(0.5px, 0.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
16% {
|
||||||
|
transform: translate(-1.5px, -0.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
18% {
|
||||||
|
transform: translate(0.5px, 0.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
20% {
|
||||||
|
transform: translate(2.5px, 2.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
22% {
|
||||||
|
transform: translate(0.5px, -1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
24% {
|
||||||
|
transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
26% {
|
||||||
|
transform: translate(1.5px, 0.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
28% {
|
||||||
|
transform: translate(-0.5px, -0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
30% {
|
||||||
|
transform: translate(1.5px, -0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
32% {
|
||||||
|
transform: translate(2.5px, -1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
34% {
|
||||||
|
transform: translate(2.5px, 2.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
36% {
|
||||||
|
transform: translate(0.5px, -1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
38% {
|
||||||
|
transform: translate(2.5px, -0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
transform: translate(-0.5px, 2.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
42% {
|
||||||
|
transform: translate(-1.5px, 2.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
44% {
|
||||||
|
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
46% {
|
||||||
|
transform: translate(1.5px, -0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
48% {
|
||||||
|
transform: translate(2.5px, -0.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
52% {
|
||||||
|
transform: translate(-0.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
54% {
|
||||||
|
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
56% {
|
||||||
|
transform: translate(0.5px, 2.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
58% {
|
||||||
|
transform: translate(2.5px, 2.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
60% {
|
||||||
|
transform: translate(2.5px, -1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
62% {
|
||||||
|
transform: translate(-1.5px, 0.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
64% {
|
||||||
|
transform: translate(-1.5px, 1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
66% {
|
||||||
|
transform: translate(0.5px, 2.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
68% {
|
||||||
|
transform: translate(2.5px, -1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
70% {
|
||||||
|
transform: translate(2.5px, 2.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
72% {
|
||||||
|
transform: translate(-0.5px, -1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
74% {
|
||||||
|
transform: translate(-1.5px, 2.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
76% {
|
||||||
|
transform: translate(-1.5px, 2.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
78% {
|
||||||
|
transform: translate(-1.5px, 2.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
80% {
|
||||||
|
transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
82% {
|
||||||
|
transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
84% {
|
||||||
|
transform: translate(-0.5px, 0.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
86% {
|
||||||
|
transform: translate(2.5px, 1.5px) rotate(0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
88% {
|
||||||
|
transform: translate(-1.5px, 0.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
90% {
|
||||||
|
transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
92% {
|
||||||
|
transform: translate(-1.5px, -1.5px) rotate(1.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
94% {
|
||||||
|
transform: translate(0.5px, 0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
96% {
|
||||||
|
transform: translate(2.5px, -0.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
98% {
|
||||||
|
transform: translate(-1.5px, -1.5px) rotate(-0.5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
0%, 100% {
|
||||||
|
transform: translate(0, 0) rotate(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes quan {
|
||||||
|
0% { transform:rotate(0);
|
||||||
|
animation-timing-function:linear; }
|
||||||
|
100% { transform:rotate(360deg); }
|
||||||
|
}
|
||||||
|
@-webkit-keyframes quan {
|
||||||
|
0% { -webkit-transform:rotate(0);
|
||||||
|
-webkit-animation-timing-function:linear; }
|
||||||
|
100% { -webkit-transform:rotate(360deg); }
|
||||||
|
}
|
||||||
|
@-moz-keyframes quan {
|
||||||
|
0% { -moz-transform:rotate(0);
|
||||||
|
-moz-animation-timing-function:linear; }
|
||||||
|
100% { -moz-transform:rotate(360deg); }
|
||||||
|
}
|
||||||
|
@-o-keyframes quan {
|
||||||
|
0% { -o-transform:rotate(0);
|
||||||
|
-o-animation-timing-function:linear; }
|
||||||
|
100% { -o-transform:rotate(360deg); }
|
||||||
|
}
|
||||||
|
@-ms-keyframes quan {
|
||||||
|
0% { -ms-transform:rotate(0);
|
||||||
|
-ms-animation-timing-function:linear; }
|
||||||
|
100% { -ms-transform:rotate(360deg); }
|
||||||
|
}
|
||||||
|
@-webkit-keyframes shake-little {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(0deg)
|
||||||
|
}
|
||||||
|
2% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
4% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
6% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
8% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
10% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
12% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
14% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
16% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
18% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
22% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
24% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
26% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
28% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
32% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
34% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
36% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
38% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
42% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
44% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
46% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
48% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
52% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
54% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
56% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
58% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
62% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
64% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
66% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
68% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
70% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
72% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
74% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
76% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
78% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
80% {
|
||||||
|
-webkit-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
82% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
84% {
|
||||||
|
-webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
86% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
88% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
90% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
92% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
94% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
96% {
|
||||||
|
-webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
98% {
|
||||||
|
-webkit-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes shake-little {
|
||||||
|
0% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(0deg)
|
||||||
|
}
|
||||||
|
2% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
4% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
6% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
8% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
10% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
12% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
14% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
16% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
18% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
22% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
24% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
26% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
28% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
32% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
34% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
36% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
38% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
42% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
44% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
46% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
48% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
52% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
54% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
56% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
58% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
62% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
64% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
66% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
68% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
70% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
72% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
74% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
76% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
78% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
80% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
82% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
84% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
86% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
88% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
90% {
|
||||||
|
-ms-transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
92% {
|
||||||
|
-ms-transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
94% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
96% {
|
||||||
|
-ms-transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
98% {
|
||||||
|
-ms-transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes shake-little {
|
||||||
|
0% {
|
||||||
|
transform: translate(0px, 0px) rotate(0deg)
|
||||||
|
}
|
||||||
|
2% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
4% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
6% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
8% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
10% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
12% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
14% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
16% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
18% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
22% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
24% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
26% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
28% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
32% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
34% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
36% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
38% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
42% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
44% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
46% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
48% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
52% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
54% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
56% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
58% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
62% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
64% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
66% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
68% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
70% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
72% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
74% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
76% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
78% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
80% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
82% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
84% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
86% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
88% {
|
||||||
|
transform: translate(0px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
90% {
|
||||||
|
transform: translate(-1px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
92% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
94% {
|
||||||
|
transform: translate(-1px, 0px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
96% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
98% {
|
||||||
|
transform: translate(0px, -1px) rotate(-0.5deg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes shake-it{
|
||||||
|
0%{
|
||||||
|
text-shadow: 0 0 rgba(0, 255, 255, .5), 0 0 rgba(255, 0, 0, .5);
|
||||||
|
}
|
||||||
|
25%{
|
||||||
|
text-shadow: -2px 0 rgba(0, 255, 255, .5), 2px 0 rgba(255, 0, 0, .5);
|
||||||
|
}
|
||||||
|
50%{
|
||||||
|
text-shadow: -5px 0 rgba(0, 255, 255, .5), 3px 0 rgba(255, 0, 0, .5);
|
||||||
|
}
|
||||||
|
100%{
|
||||||
|
text-shadow: 3px 0 rgba(0, 255, 255, .5), 5px 0 rgba(255, 0, 0, .5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes rainbow {
|
||||||
|
100% { filter: hue-rotate(360deg); }
|
||||||
|
}
|
||||||
BIN
Live2dHistoire/live2d/images/info.png
Normal file
|
After Width: | Height: | Size: 545 B |
BIN
Live2dHistoire/live2d/images/music.png
Normal file
|
After Width: | Height: | Size: 549 B |
BIN
Live2dHistoire/live2d/images/pasue.png
Normal file
|
After Width: | Height: | Size: 472 B |
BIN
Live2dHistoire/live2d/images/quite.png
Normal file
|
After Width: | Height: | Size: 682 B |
BIN
Live2dHistoire/live2d/images/talk.png
Normal file
|
After Width: | Height: | Size: 411 B |
BIN
Live2dHistoire/live2d/images/youdu.png
Normal file
|
After Width: | Height: | Size: 617 B |
1
Live2dHistoire/live2d/js/live2d.js
Normal file
490
Live2dHistoire/live2d/js/message.js
Normal file
@@ -0,0 +1,490 @@
|
|||||||
|
var userAgent = window.navigator.userAgent.toLowerCase();
|
||||||
|
console.log(userAgent);
|
||||||
|
var norunAI = ["android", "iphone", "ipod", "ipad", "windows phone"];
|
||||||
|
var norunFlag = false;
|
||||||
|
|
||||||
|
|
||||||
|
for (var i = 0; i < norunAI.length; i++) {
|
||||||
|
if (userAgent.indexOf(norunAI[i]) > -1) {
|
||||||
|
norunFlag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!window.WebGLRenderingContext) {
|
||||||
|
norunFlag = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!norunFlag) {
|
||||||
|
var hitFlag = false;
|
||||||
|
var AIFadeFlag = false;
|
||||||
|
var liveTlakTimer = null;
|
||||||
|
var sleepTimer_ = null;
|
||||||
|
var AITalkFlag = false;
|
||||||
|
var talkNum = 0;
|
||||||
|
(function () {
|
||||||
|
function renderTip(template, context) {
|
||||||
|
var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g;
|
||||||
|
return template.replace(tokenReg, function (word, slash1, token, slash2) {
|
||||||
|
if (slash1 || slash2) {
|
||||||
|
return word.replace(/\\/g, '');
|
||||||
|
}
|
||||||
|
var variables = token.replace(/\s/g, '').split('.');
|
||||||
|
var currentObject = context;
|
||||||
|
var i, length, variable;
|
||||||
|
for (i = 0, length = variables.length; i < length; ++i) {
|
||||||
|
variable = variables[i];
|
||||||
|
currentObject = currentObject[variable];
|
||||||
|
if (currentObject === undefined || currentObject === null) return '';
|
||||||
|
}
|
||||||
|
return currentObject;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
String.prototype.renderTip = function (context) {
|
||||||
|
return renderTip(this, context);
|
||||||
|
};
|
||||||
|
|
||||||
|
var re = /x/;
|
||||||
|
console.log(re);
|
||||||
|
re.toString = function () {
|
||||||
|
showMessage('哈哈,你打开了控制台,是想要看看我的秘密吗?', 5000);
|
||||||
|
return '';
|
||||||
|
};
|
||||||
|
|
||||||
|
$(document).on('copy', function () {
|
||||||
|
showMessage('你都复制了些什么呀,转载要记得加上出处哦~~', 5000);
|
||||||
|
});
|
||||||
|
|
||||||
|
function initTips() {
|
||||||
|
$.ajax({
|
||||||
|
cache: true,
|
||||||
|
url: message_Path + 'message.json',
|
||||||
|
dataType: "json",
|
||||||
|
success: function (result) {
|
||||||
|
$.each(result.mouseover, function (index, tips) {
|
||||||
|
$(tips.selector).mouseover(function () {
|
||||||
|
var text = tips.text;
|
||||||
|
if (Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1) - 1];
|
||||||
|
text = text.renderTip({ text: $(this).text() });
|
||||||
|
showMessage(text, 3000);
|
||||||
|
talkValTimer();
|
||||||
|
clearInterval(liveTlakTimer);
|
||||||
|
liveTlakTimer = null;
|
||||||
|
});
|
||||||
|
$(tips.selector).mouseout(function () {
|
||||||
|
showHitokoto();
|
||||||
|
if (liveTlakTimer == null) {
|
||||||
|
liveTlakTimer = window.setInterval(function () {
|
||||||
|
showHitokoto();
|
||||||
|
}, 15000);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$.each(result.click, function (index, tips) {
|
||||||
|
$(tips.selector).click(function () {
|
||||||
|
if (hitFlag) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
hitFlag = true;
|
||||||
|
setTimeout(function () {
|
||||||
|
hitFlag = false;
|
||||||
|
}, 8000);
|
||||||
|
var text = tips.text;
|
||||||
|
if (Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1) - 1];
|
||||||
|
text = text.renderTip({ text: $(this).text() });
|
||||||
|
showMessage(text, 3000);
|
||||||
|
});
|
||||||
|
clearInterval(liveTlakTimer);
|
||||||
|
liveTlakTimer = null;
|
||||||
|
if (liveTlakTimer == null) {
|
||||||
|
liveTlakTimer = window.setInterval(function () {
|
||||||
|
showHitokoto();
|
||||||
|
}, 15000);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
initTips();
|
||||||
|
|
||||||
|
var text;
|
||||||
|
if (document.referrer !== '' && document.referrer.split('/')[2] !== window.location.host) {
|
||||||
|
var referrer = document.createElement('a');
|
||||||
|
referrer.href = document.referrer;
|
||||||
|
text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
|
||||||
|
var domain = referrer.hostname.split('.')[1];
|
||||||
|
if (domain == 'baidu') {
|
||||||
|
text = '嗨! 来自 百度搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
|
||||||
|
} else if (domain == 'so') {
|
||||||
|
text = '嗨! 来自 360搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
|
||||||
|
} else if (domain == 'google') {
|
||||||
|
text = '嗨! 来自 谷歌搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (window.location.pathname == "/") { //主页URL判断,需要斜杠结尾
|
||||||
|
var now = (new Date()).getHours();
|
||||||
|
if (now > 23 || now <= 5) {
|
||||||
|
text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?';
|
||||||
|
} else if (now > 5 && now <= 7) {
|
||||||
|
text = '早上好!一日之计在于晨,美好的一天就要开始了!';
|
||||||
|
} else if (now > 7 && now <= 11) {
|
||||||
|
text = '上午好!工作顺利嘛,不要久坐,多起来走动走动哦!';
|
||||||
|
} else if (now > 11 && now <= 14) {
|
||||||
|
text = '中午了,工作了一个上午,现在是午餐时间!';
|
||||||
|
} else if (now > 14 && now <= 17) {
|
||||||
|
text = '午后很容易犯困呢,今天的运动目标完成了吗?';
|
||||||
|
} else if (now > 17 && now <= 19) {
|
||||||
|
text = '傍晚了!窗外夕阳的景色很美丽呢,最美不过夕阳红~~';
|
||||||
|
} else if (now > 19 && now <= 21) {
|
||||||
|
text = '晚上好,今天过得怎么样?';
|
||||||
|
} else if (now > 21 && now <= 23) {
|
||||||
|
text = '已经这么晚了呀,早点休息吧,晚安~~';
|
||||||
|
} else {
|
||||||
|
text = '嗨~ 快来逗我玩吧!';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
text = '欢迎阅读<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
showMessage(text, 12000);
|
||||||
|
})();
|
||||||
|
|
||||||
|
liveTlakTimer = setInterval(function () {
|
||||||
|
showHitokoto();
|
||||||
|
}, 15000);
|
||||||
|
|
||||||
|
function showHitokoto() {
|
||||||
|
if (sessionStorage.getItem("Sleepy") !== "1") {
|
||||||
|
if (!AITalkFlag) {
|
||||||
|
$.getJSON('https://hitokoto.mayx.eu.org/', function (result) {
|
||||||
|
talkValTimer();
|
||||||
|
showMessage(result.hitokoto, 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
hideMessage(0);
|
||||||
|
if (sleepTimer_ == null) {
|
||||||
|
sleepTimer_ = setInterval(function () {
|
||||||
|
checkSleep();
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
console.log(sleepTimer_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkSleep() {
|
||||||
|
var sleepStatu = sessionStorage.getItem("Sleepy");
|
||||||
|
if (sleepStatu !== '1') {
|
||||||
|
talkValTimer();
|
||||||
|
showMessage('你回来啦~', 0);
|
||||||
|
clearInterval(sleepTimer_);
|
||||||
|
sleepTimer_ = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showMessage(text, timeout) {
|
||||||
|
if (Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1) - 1];
|
||||||
|
//console.log('showMessage', text);
|
||||||
|
$('.message').stop();
|
||||||
|
if (typeof EventSource !== 'undefined' && text instanceof EventSource) {
|
||||||
|
var outputContainer = $('.message')[0];
|
||||||
|
var eventFlag = false;
|
||||||
|
text.onmessage = function (event) {
|
||||||
|
if (event.data == "[DONE]") {
|
||||||
|
text.close();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
if (!eventFlag) {
|
||||||
|
talkValTimer();
|
||||||
|
outputContainer.textContent = "";
|
||||||
|
eventFlag = true;
|
||||||
|
}
|
||||||
|
var data = JSON.parse(event.data);
|
||||||
|
if (data.response) {
|
||||||
|
outputContainer.textContent += data.response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('.message').html(text);
|
||||||
|
}
|
||||||
|
$('.message').fadeTo(200, 1);
|
||||||
|
//if (timeout === null) timeout = 5000;
|
||||||
|
//hideMessage(timeout);
|
||||||
|
}
|
||||||
|
function talkValTimer() {
|
||||||
|
$('#live_talk').val('1');
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideMessage(timeout) {
|
||||||
|
//$('.message').stop().css('opacity',1);
|
||||||
|
if (timeout === null) timeout = 5000;
|
||||||
|
$('.message').delay(timeout).fadeTo(200, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function initLive2d() {
|
||||||
|
$("#landlord").mouseenter(function () {
|
||||||
|
$(".live_ico_box").fadeIn();
|
||||||
|
});
|
||||||
|
$("#landlord").mouseleave(function () {
|
||||||
|
$(".live_ico_box").fadeOut();
|
||||||
|
});
|
||||||
|
$('#hideButton').on('click', function () {
|
||||||
|
if (AIFadeFlag) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
AIFadeFlag = true;
|
||||||
|
localStorage.setItem("live2dhidden", "0");
|
||||||
|
$('#landlord').fadeOut(200);
|
||||||
|
$('#open_live2d').delay(200).fadeIn(200);
|
||||||
|
setTimeout(function () {
|
||||||
|
AIFadeFlag = false;
|
||||||
|
}, 300);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#open_live2d').on('click', function () {
|
||||||
|
if (AIFadeFlag) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
AIFadeFlag = true;
|
||||||
|
localStorage.setItem("live2dhidden", "1");
|
||||||
|
$('#open_live2d').fadeOut(200);
|
||||||
|
$('#landlord').delay(200).fadeIn(200);
|
||||||
|
setTimeout(function () {
|
||||||
|
AIFadeFlag = false;
|
||||||
|
}, 300);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#youduButton').on('click', function () {
|
||||||
|
if ($('#youduButton').hasClass('doudong')) {
|
||||||
|
var typeIs = $('#youduButton').attr('data-type');
|
||||||
|
$('#youduButton').removeClass('doudong');
|
||||||
|
$('body').removeClass(typeIs);
|
||||||
|
$('#youduButton').attr('data-type', '');
|
||||||
|
} else {
|
||||||
|
var duType = $('#duType').val();
|
||||||
|
var duArr = duType.split(",");
|
||||||
|
var dataType = duArr[Math.floor(Math.random() * duArr.length)];
|
||||||
|
|
||||||
|
$('#youduButton').addClass('doudong');
|
||||||
|
$('#youduButton').attr('data-type', dataType);
|
||||||
|
$('body').addClass(dataType);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (talkAPI !== "" && typeof EventSource !== 'undefined') {
|
||||||
|
$('#showInfoBtn').on('click', function () {
|
||||||
|
var live_statu = $('#live_statu_val').val();
|
||||||
|
if (live_statu == "0") {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
$('#live_statu_val').val("0");
|
||||||
|
$('.live_talk_input_body').fadeOut(500);
|
||||||
|
AITalkFlag = false;
|
||||||
|
showHitokoto();
|
||||||
|
$('#showTalkBtn').show();
|
||||||
|
$('#showInfoBtn').hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#showTalkBtn').on('click', function () {
|
||||||
|
var live_statu = $('#live_statu_val').val();
|
||||||
|
if (live_statu == "1") {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
$('#live_statu_val').val("1");
|
||||||
|
$('.live_talk_input_body').fadeIn(500);
|
||||||
|
AITalkFlag = true;
|
||||||
|
$('#showTalkBtn').hide();
|
||||||
|
$('#showInfoBtn').show();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#live_talk_input_form').on('submit', function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var info_ = $('#AIuserText').val();
|
||||||
|
// var userid_ = $('#AIuserName').val();
|
||||||
|
let add_id = "";
|
||||||
|
if ($('#load_this').prop("checked")) {
|
||||||
|
add_id = "&id=" + encodeURIComponent($('#post_id').val());
|
||||||
|
}
|
||||||
|
if (info_ == "") {
|
||||||
|
showMessage('写点什么吧!', 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
showMessage('思考中~', 0);
|
||||||
|
showMessage(new EventSource(talkAPI + "?info=" + encodeURIComponent(info_) + add_id));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('#showInfoBtn').hide();
|
||||||
|
$('#showTalkBtn').hide();
|
||||||
|
|
||||||
|
}
|
||||||
|
// //获取用户名
|
||||||
|
// var live2dUser = sessionStorage.getItem("live2duser");
|
||||||
|
// if(live2dUser !== null){
|
||||||
|
// $('#AIuserName').val(live2dUser);
|
||||||
|
// }
|
||||||
|
//获取位置
|
||||||
|
var landL = sessionStorage.getItem("historywidth");
|
||||||
|
var landB = sessionStorage.getItem("historyheight");
|
||||||
|
if (landL == null || landB == null) {
|
||||||
|
landL = '5px'
|
||||||
|
landB = '0px'
|
||||||
|
}
|
||||||
|
$('#landlord').css('left', landL + 'px');
|
||||||
|
$('#landlord').css('bottom', landB + 'px');
|
||||||
|
//移动
|
||||||
|
function getEvent() {
|
||||||
|
return window.event || arguments.callee.caller.arguments[0];
|
||||||
|
}
|
||||||
|
var smcc = document.getElementById("landlord");
|
||||||
|
var moveX = 0;
|
||||||
|
var moveY = 0;
|
||||||
|
var moveBottom = 0;
|
||||||
|
var moveLeft = 0;
|
||||||
|
var moveable = false;
|
||||||
|
var docMouseMoveEvent = document.onmousemove;
|
||||||
|
var docMouseUpEvent = document.onmouseup;
|
||||||
|
smcc.onmousedown = function () {
|
||||||
|
var ent = getEvent();
|
||||||
|
moveable = true;
|
||||||
|
moveX = ent.clientX;
|
||||||
|
moveY = ent.clientY;
|
||||||
|
var obj = smcc;
|
||||||
|
moveBottom = parseInt(obj.style.bottom);
|
||||||
|
moveLeft = parseInt(obj.style.left);
|
||||||
|
if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
|
}
|
||||||
|
document.onmousemove = function () {
|
||||||
|
if (moveable) {
|
||||||
|
var ent = getEvent();
|
||||||
|
var x = moveLeft + ent.clientX - moveX;
|
||||||
|
var y = moveBottom + (moveY - ent.clientY);
|
||||||
|
obj.style.left = x + "px";
|
||||||
|
obj.style.bottom = y + "px";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
document.onmouseup = function () {
|
||||||
|
if (moveable) {
|
||||||
|
var historywidth = obj.style.left;
|
||||||
|
var historyheight = obj.style.bottom;
|
||||||
|
historywidth = historywidth.replace('px', '');
|
||||||
|
historyheight = historyheight.replace('px', '');
|
||||||
|
sessionStorage.setItem("historywidth", historywidth);
|
||||||
|
sessionStorage.setItem("historyheight", historyheight);
|
||||||
|
document.onmousemove = docMouseMoveEvent;
|
||||||
|
document.onmouseup = docMouseUpEvent;
|
||||||
|
moveable = false;
|
||||||
|
moveX = 0;
|
||||||
|
moveY = 0;
|
||||||
|
moveBottom = 0;
|
||||||
|
moveLeft = 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
//获取音乐信息初始化
|
||||||
|
var bgmListInfo = $('input[name=live2dBGM]');
|
||||||
|
if (bgmListInfo.length == 0) {
|
||||||
|
$('#musicButton').hide();
|
||||||
|
} else {
|
||||||
|
var bgmPlayNow = parseInt($('#live2d_bgm').attr('data-bgm'));
|
||||||
|
var bgmPlayTime = 0;
|
||||||
|
var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
|
||||||
|
var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
|
||||||
|
if (live2dBGM_Num) {
|
||||||
|
if (live2dBGM_Num <= $('input[name=live2dBGM]').length - 1) {
|
||||||
|
bgmPlayNow = parseInt(live2dBGM_Num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (live2dBGM_PlayTime) {
|
||||||
|
bgmPlayTime = parseInt(live2dBGM_PlayTime);
|
||||||
|
}
|
||||||
|
var live2dBGMSrc = bgmListInfo.eq(bgmPlayNow).val();
|
||||||
|
$('#live2d_bgm').attr('data-bgm', bgmPlayNow);
|
||||||
|
$('#live2d_bgm').attr('src', live2dBGMSrc);
|
||||||
|
$('#live2d_bgm')[0].currentTime = bgmPlayTime;
|
||||||
|
$('#live2d_bgm')[0].volume = 0.5;
|
||||||
|
var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
|
||||||
|
var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
|
||||||
|
if (live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0') {
|
||||||
|
$('#live2d_bgm')[0].play();
|
||||||
|
$('#musicButton').addClass('play');
|
||||||
|
}
|
||||||
|
sessionStorage.setItem("live2dBGM_WindowClose", '1');
|
||||||
|
$('#musicButton').on('click', function () {
|
||||||
|
if ($('#musicButton').hasClass('play')) {
|
||||||
|
$('#live2d_bgm')[0].pause();
|
||||||
|
$('#musicButton').removeClass('play');
|
||||||
|
sessionStorage.setItem("live2dBGM_IsPlay", '1');
|
||||||
|
} else {
|
||||||
|
$('#live2d_bgm')[0].play();
|
||||||
|
$('#musicButton').addClass('play');
|
||||||
|
sessionStorage.setItem("live2dBGM_IsPlay", '0');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
window.onbeforeunload = function () {
|
||||||
|
sessionStorage.setItem("live2dBGM_WindowClose", '0');
|
||||||
|
if ($('#musicButton').hasClass('play')) {
|
||||||
|
sessionStorage.setItem("live2dBGM_IsPlay", '0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.getElementById('live2d_bgm').addEventListener("timeupdate", function () {
|
||||||
|
var live2dBgmPlayTimeNow = document.getElementById('live2d_bgm').currentTime;
|
||||||
|
sessionStorage.setItem("live2dBGM_PlayTime", live2dBgmPlayTimeNow);
|
||||||
|
});
|
||||||
|
document.getElementById('live2d_bgm').addEventListener("ended", function () {
|
||||||
|
var listNow = parseInt($('#live2d_bgm').attr('data-bgm'));
|
||||||
|
listNow++;
|
||||||
|
if (listNow > $('input[name=live2dBGM]').length - 1) {
|
||||||
|
listNow = 0;
|
||||||
|
}
|
||||||
|
var listNewSrc = $('input[name=live2dBGM]').eq(listNow).val();
|
||||||
|
sessionStorage.setItem("live2dBGM_Num", listNow);
|
||||||
|
$('#live2d_bgm').attr('src', listNewSrc);
|
||||||
|
$('#live2d_bgm')[0].play();
|
||||||
|
$('#live2d_bgm').attr('data-bgm', listNow);
|
||||||
|
});
|
||||||
|
document.getElementById('live2d_bgm').addEventListener("error", function () {
|
||||||
|
$('#live2d_bgm')[0].pause();
|
||||||
|
$('#musicButton').removeClass('play');
|
||||||
|
showMessage('音乐似乎加载不出来了呢!', 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$(document).ready(function () {
|
||||||
|
var AIimgSrc = [
|
||||||
|
message_Path + "model/histoire/histoire.1024/texture_00.png",
|
||||||
|
message_Path + "model/histoire/histoire.1024/texture_01.png",
|
||||||
|
message_Path + "model/histoire/histoire.1024/texture_02.png",
|
||||||
|
message_Path + "model/histoire/histoire.1024/texture_03.png"
|
||||||
|
]
|
||||||
|
var images = [];
|
||||||
|
var imgLength = AIimgSrc.length;
|
||||||
|
var loadingNum = 0;
|
||||||
|
for (var i = 0; i < imgLength; i++) {
|
||||||
|
images[i] = new Image();
|
||||||
|
images[i].src = AIimgSrc[i];
|
||||||
|
images[i].onload = function () {
|
||||||
|
loadingNum++;
|
||||||
|
if (loadingNum === imgLength) {
|
||||||
|
var live2dhidden = localStorage.getItem("live2dhidden");
|
||||||
|
if (live2dhidden === "0") {
|
||||||
|
setTimeout(function () {
|
||||||
|
$('#open_live2d').fadeIn(200);
|
||||||
|
}, 1300);
|
||||||
|
} else {
|
||||||
|
setTimeout(function () {
|
||||||
|
$('#landlord').fadeIn(200);
|
||||||
|
}, 1300);
|
||||||
|
}
|
||||||
|
setTimeout(function () {
|
||||||
|
loadlive2d("live2d", message_Path + "model/histoire/model.json");
|
||||||
|
}, 1000);
|
||||||
|
initLive2d();
|
||||||
|
images = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
42
Live2dHistoire/live2d/message.json
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"mouseover": [
|
||||||
|
{
|
||||||
|
"selector": "#showInfoBtn",
|
||||||
|
"text": ["不和我聊了吗?"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#showTalkBtn",
|
||||||
|
"text": ["要和我聊天吗?"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#hideButton",
|
||||||
|
"text": ["隐藏伊斯特瓦尔,希望隐藏后我们还能再见面!"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#musicButton",
|
||||||
|
"text": ["给页面加点音乐吗?"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#youduButton",
|
||||||
|
"text": ["按钮有毒,癫痫患者不要开启!!!<br>点一下开启,再点一下可以关闭。"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": ".post-link",
|
||||||
|
"text": ["要看看 {text} 么?"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#search-input",
|
||||||
|
"text": ["在找什么东西呢,需要帮忙吗?"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selector": "#search-input-all",
|
||||||
|
"text": ["在找什么东西呢,需要帮忙吗?"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"click": [
|
||||||
|
{
|
||||||
|
"selector": "#landlord #live2d",
|
||||||
|
"text": ["不要动手动脚的!快把手拿开~~", "真…真的是不知羞耻!","Hentai!", "再摸的话我可要报警了!", "110吗,这里有个变态!"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 154 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 128 KiB |
BIN
Live2dHistoire/live2d/model/histoire/ico_histoire.png
Normal file
|
After Width: | Height: | Size: 252 KiB |
59
Live2dHistoire/live2d/model/histoire/model.json
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
"version":"1.0.0",
|
||||||
|
"model":"model.moc",
|
||||||
|
"textures":[
|
||||||
|
"histoire.1024/texture_00.png",
|
||||||
|
"histoire.1024/texture_01.png",
|
||||||
|
"histoire.1024/texture_02.png",
|
||||||
|
"histoire.1024/texture_03.png"
|
||||||
|
],
|
||||||
|
"layout":{
|
||||||
|
"center_x":0.0,
|
||||||
|
"center_y":-0.05,
|
||||||
|
"width":2.0
|
||||||
|
},
|
||||||
|
"hit_areas_custom":{
|
||||||
|
"head_x":[-1, 1],
|
||||||
|
"head_y":[1, -1],
|
||||||
|
"body_x":[-1, -1],
|
||||||
|
"body_y":[1, -1]
|
||||||
|
},
|
||||||
|
"motions":{
|
||||||
|
"idle":[
|
||||||
|
{"file":"motions/idle/NOZOMU_M01.mtn"},
|
||||||
|
{"file":"motions/idle/NOZOMU_M02.mtn"}
|
||||||
|
],
|
||||||
|
"sleepy":[
|
||||||
|
{"file":"motions/idle/NOZOMU_M04.mtn"}
|
||||||
|
],
|
||||||
|
"flick_head":[
|
||||||
|
{"file":"motions/tap/DK_NOZOMU_0011.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_14.mtn"},
|
||||||
|
{"file":"motions/tap/m_06.mtn"}
|
||||||
|
],
|
||||||
|
"tap_body":[
|
||||||
|
{"file":"motions/tap/DK_NOZOMU_0011.mtn"},
|
||||||
|
{"file":"motions/tap/m_13.mtn"}
|
||||||
|
|
||||||
|
],
|
||||||
|
"talk":[
|
||||||
|
{"file":"motions/tap/DK_NOZOMU_0041.mtn"},
|
||||||
|
{"file":"motions/tap/DK_NOZOMU_0061.mtn"},
|
||||||
|
{"file":"motions/tap/DK_NOZOMU_0067.mtn"}
|
||||||
|
],
|
||||||
|
"rest":[
|
||||||
|
{"file":"motions/tap/tsumiki_m_01.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_09.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_13.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_19.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_21.mtn"}
|
||||||
|
],
|
||||||
|
"":[
|
||||||
|
{"file":"motions/tap/tsumiki_m_01.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_09.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_13.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_19.mtn"},
|
||||||
|
{"file":"motions/tap/tsumiki_m_21.mtn"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
Live2dHistoire/live2d/model/histoire/model.moc
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.24,0.42,0.63,0.88,1.17,1.48,1.81,2.17,2.54,2.92,3.31,3.69,4.08,4.46,4.83,5.19,5.52,5.83,6.12,6.37,6.58,6.76,6.89,6.97,7,6.79,6.24,5.45,4.46,3.37,2.22,1.07,-0.06,-1.11,-2.06,-2.84,-3.46,-3.86,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.984,-3.94,-3.86,-3.76,-3.64,-3.5,-3.33,-3.16,-2.97,-2.77,-2.56,-2.35,-2.13,-1.92,-1.71,-1.5,-1.29,-1.09,-0.91,-0.73,-0.57,-0.43,-0.31,-0.2,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.03,0.07,0.15,0.26,0.41,0.61,0.85,1.16,1.52,1.94,2.42,2.97,3.58,4.26,5,6.3,7.95,9.74,11.63,13.46,15.19,16.78,18.08,19.11,19.76,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19.95,19.82,19.61,19.32,18.97,18.55,18.08,17.55,16.97,16.37,15.71,15.02,14.31,13.58,12.82,12.05,11.27,10.5,9.71,8.92,8.15,7.39,6.65,5.92,5.22,4.54,3.89,3.28,2.71,2.19,1.71,1.27,0.9,0.59,0.34,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.69,-1.18,-1.79,-2.48,-3.28,-4.12,-5.02,-5.96,-6.9,-7.88,-8.84,-9.79,-10.72,-11.61,-12.43,-13.19,-13.89,-14.5,-15.02,-15.44,-15.75,-15.94,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.94,-15.75,-15.45,-15.05,-14.55,-13.98,-13.33,-12.62,-11.86,-11.07,-10.22,-9.37,-8.51,-7.64,-6.78,-5.94,-5.11,-4.33,-3.58,-2.88,-2.24,-1.67,-1.16,-0.73,-0.39,-0.14,0.01,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.16,0.34,0.6,0.91,1.26,1.67,2.11,2.59,3.1,3.62,4.17,4.72,5.28,5.83,6.38,6.9,7.41,7.89,8.33,8.74,9.09,9.4,9.66,9.84,9.96,10,9.5,8.21,6.33,4,1.41,-1.29,-4.03,-6.69,-9.17,-11.41,-13.27,-14.73,-15.67,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.94,-15.75,-15.45,-15.05,-14.56,-13.99,-13.34,-12.64,-11.88,-11.09,-10.25,-9.4,-8.54,-7.67,-6.82,-5.98,-5.15,-4.37,-3.63,-2.93,-2.29,-1.73,-1.22,-0.79,-0.46,-0.21,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.18,-0.32,-0.5,-0.73,-0.99,-1.29,-1.63,-2.01,-2.43,-2.88,-3.37,-3.88,-4.43,-5,-5.75,-6.4,-6.96,-7.45,-7.86,-8.21,-8.5,-8.71,-8.87,-8.97,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.98,-8.92,-8.82,-8.7,-8.54,-8.35,-8.14,-7.9,-7.64,-7.36,-7.07,-6.76,-6.44,-6.11,-5.77,-5.42,-5.07,-4.72,-4.37,-4.01,-3.67,-3.33,-2.99,-2.66,-2.35,-2.04,-1.75,-1.48,-1.22,-0.98,-0.77,-0.57,-0.41,-0.26,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.12,-0.26,-0.44,-0.67,-0.93,-1.23,-1.55,-1.88,-2.23,-2.59,-2.96,-3.32,-3.67,-4.02,-4.35,-4.66,-4.95,-5.21,-5.44,-5.63,-5.79,-5.9,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.91,-5.79,-5.65,-5.46,-5.25,-5.01,-4.74,-4.46,-4.17,-3.85,-3.54,-3.22,-2.89,-2.57,-2.26,-1.95,-1.66,-1.38,-1.12,-0.88,-0.67,-0.49,-0.33,-0.2,-0.11,-0.05,-0.029,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.63,1.35,2.28,3.38,4.58,5.85,7.15,8.42,9.62,10.72,11.65,12.37,12.84,13,12.87,12.5,11.91,11.13,10.23,9.17,8.03,6.84,5.6,4.35,3.16,2,0.81,-0.18,-1,-1.69,-2.26,-2.71,-3.08,-3.37,-3.59,-3.76,-3.87,-3.95,-3.99,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.984,-3.94,-3.86,-3.76,-3.64,-3.5,-3.33,-3.16,-2.97,-2.77,-2.56,-2.35,-2.13,-1.92,-1.71,-1.5,-1.29,-1.09,-0.91,-0.73,-0.57,-0.43,-0.31,-0.2,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.45,1.58,3.11,4.9,6.75,8.59,10.32,11.78,12.96,13.72,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.97,13.88,13.73,13.53,13.28,12.99,12.66,12.28,11.88,11.46,11,10.51,10.02,9.5,8.98,8.44,7.89,7.35,6.79,6.24,5.7,5.17,4.65,4.14,3.65,3.18,2.72,2.3,1.9,1.53,1.19,0.89,0.63,0.41,0.24,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.56,1.11,1.75,2.41,3.07,3.69,4.21,4.63,4.9,5,4.48,3.14,1.19,-1.23,-3.92,-6.72,-9.57,-12.33,-14.91,-17.24,-19.16,-20.68,-21.66,-22,-21.93,-21.75,-21.53,-21.32,-21.15,-21.04,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-20.92,-20.67,-20.28,-19.75,-19.1,-18.35,-17.5,-16.57,-15.58,-14.54,-13.43,-12.31,-11.18,-10.04,-8.92,-7.82,-6.72,-5.7,-4.72,-3.81,-2.96,-2.22,-1.55,-0.99,-0.55,-0.22,-0.01,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.005,-0.011,-0.019,-0.029,-0.04,-0.053,-0.068,-0.083,-0.099,-0.116,-0.133,-0.151,-0.169,-0.187,-0.204,-0.221,-0.237,-0.252,-0.267,-0.28,-0.291,-0.301,-0.309,-0.315,-0.319,-0.32,-0.309,-0.28,-0.23,-0.18,-0.13,-0.08,-0.03,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.008,0.01,0.007,0.01,0.006,0.01,0.005,0,0.004,0,0.003,0,0.002,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.004,-0.007,-0.012,-0.018,-0.026,-0.036,-0.048,-0.062,-0.078,-0.096,-0.12,-0.14,-0.17,-0.2,-0.23,-0.28,-0.34,-0.4,-0.46,-0.52,-0.58,-0.62,-0.65,-0.673,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.678,-0.674,-0.667,-0.657,-0.645,-0.631,-0.615,-0.597,-0.577,-0.56,-0.53,-0.51,-0.49,-0.46,-0.44,-0.41,-0.38,-0.36,-0.33,-0.3,-0.28,-0.25,-0.23,-0.2,-0.18,-0.15,-0.13,-0.11,-0.092,-0.074,-0.058,-0.043,-0.031,-0.02,-0.012,-0.005,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.006,0.011,0.017,0.023,0.031,0.039,0.047,0.057,0.067,0.077,0.087,0.098,0.108,0.119,0.13,0.14,0.15,0.16,0.17,0.179,0.188,0.196,0.203,0.21,0.216,0.221,0.225,0.228,0.229,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.226,0.222,0.216,0.209,0.201,0.191,0.181,0.17,0.159,0.146,0.134,0.122,0.109,0.097,0.085,0.073,0.061,0.05,0.04,0.031,0.023,0.016,0.009,0.004,0.001,-0.001,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.003,0.005,0.007,0.01,0.013,0.016,0.02,0.024,0.029,0.033,0.038,0.044,0.049,0.055,0.062,0.068,0.075,0.082,0.089,0.097,0.105,0.113,0.121,0.13,0.138,0.144,0.149,0.153,0.156,0.158,0.159,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.159,0.157,0.154,0.151,0.146,0.14,0.133,0.126,0.119,0.111,0.102,0.094,0.085,0.077,0.068,0.06,0.052,0.044,0.036,0.029,0.023,0.017,0.012,0.008,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.008,0.013,0.019,0.026,0.034,0.044,0.056,0.07,0.086,0.103,0.123,0.15,0.17,0.21,0.25,0.3,0.36,0.41,0.45,0.49,0.52,0.534,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.539,0.535,0.529,0.522,0.512,0.501,0.488,0.474,0.458,0.442,0.424,0.405,0.386,0.367,0.346,0.33,0.3,0.28,0.26,0.24,0.22,0.2,0.179,0.16,0.141,0.123,0.105,0.089,0.073,0.059,0.046,0.034,0.024,0.016,0.009,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.006,0.01,0.015,0.021,0.028,0.035,0.043,0.052,0.061,0.07,0.079,0.089,0.099,0.109,0.118,0.128,0.137,0.146,0.155,0.164,0.171,0.179,0.186,0.192,0.197,0.202,0.205,0.208,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.207,0.203,0.198,0.191,0.184,0.175,0.166,0.156,0.146,0.135,0.124,0.113,0.102,0.091,0.08,0.069,0.059,0.049,0.04,0.032,0.024,0.018,0.012,0.008,0.004,0.002,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.12,-0.45,-0.99,-1.71,-2.56,-3.53,-4.64,-5.77,-6.99,-8.22,-9.47,-10.68,-11.88,-13.01,-14.07,-15.03,-15.88,-16.62,-17.2,-17.64,-17.91,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-17.93,-17.72,-17.38,-16.93,-16.37,-15.73,-15,-14.19,-13.34,-12.43,-11.48,-10.5,-9.5,-8.5,-7.5,-6.52,-5.57,-4.66,-3.81,-3,-2.27,-1.63,-1.07,-0.62,-0.28,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.4,-0.88,-1.52,-2.28,-3.14,-4.12,-5.13,-6.21,-7.31,-8.42,-9.49,-10.56,-11.56,-12.51,-13.36,-14.12,-14.77,-15.29,-15.68,-15.92,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.94,-15.75,-15.45,-15.05,-14.55,-13.98,-13.33,-12.62,-11.86,-11.05,-10.2,-9.33,-8.45,-7.55,-6.67,-5.8,-4.95,-4.14,-3.38,-2.67,-2.02,-1.45,-0.95,-0.55,-0.25,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.05,-0.18,-0.39,-0.66,-1,-1.39,-1.81,-2.27,-2.76,-3.25,-3.75,-4.24,-4.73,-5.19,-5.61,-6,-6.34,-6.61,-6.82,-6.95,-7,-6.97,-6.89,-6.75,-6.56,-6.32,-6.04,-5.72,-5.37,-4.97,-4.55,-4.09,-3.62,-3.11,-2.59,-2.05,-1.5,-0.93,-0.37,0.21,0.79,1.37,1.93,2.5,3.05,3.59,4.11,4.62,5.09,5.55,5.97,6.37,6.72,7.04,7.32,7.56,7.75,7.89,7.97,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.93,7.73,7.44,7.05,6.6,6.08,5.53,4.96,4.37,3.78,3.2,2.63,2.09,1.6,1.15,0.76,0.44,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.4,-0.88,-1.52,-2.28,-3.14,-4.12,-5.13,-6.21,-7.31,-8.42,-9.49,-10.56,-11.56,-12.51,-13.36,-14.12,-14.77,-15.29,-15.68,-15.92,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.94,-15.75,-15.45,-15.05,-14.55,-13.98,-13.33,-12.62,-11.86,-11.05,-10.2,-9.33,-8.45,-7.55,-6.67,-5.8,-4.95,-4.14,-3.38,-2.67,-2.02,-1.45,-0.95,-0.55,-0.25,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.012,0.04,0.09,0.15,0.22,0.29,0.36,0.43,0.48,0.53,0.57,0.59,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.598,0.591,0.579,0.564,0.546,0.52,0.5,0.47,0.44,0.41,0.38,0.35,0.32,0.28,0.25,0.22,0.19,0.16,0.13,0.1,0.08,0.05,0.036,0.021,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.01,0.02,0.033,0.048,0.063,0.078,0.092,0.105,0.115,0.123,0.128,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.129,0.128,0.126,0.122,0.118,0.114,0.108,0.103,0.096,0.09,0.083,0.076,0.069,0.061,0.054,0.047,0.04,0.034,0.027,0.022,0.016,0.012,0.008,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57
|
||||||
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.26,1,2.11,3.56,5.26,7.19,9.25,11.38,13.6,15.83,18.01,20.14,22.16,24,25.7,27.15,28.34,29.23,29.8,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.85,29.42,28.75,27.85,26.79,25.54,24.16,22.68,21.12,19.47,17.8,16.08,14.34,12.66,11,9.37,7.84,6.38,5.02,3.8,2.72,1.79,1.03,0.47,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.39,0.66,1,1.39,1.81,2.27,2.76,3.25,3.75,4.24,4.73,5.19,5.61,6,6.34,6.61,6.82,6.95,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.79,6.24,5.45,4.46,3.37,2.22,1.07,-0.06,-1.11,-2.06,-2.84,-3.46,-3.86,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.98,-3.92,-3.83,-3.7,-3.55,-3.38,-3.18,-2.97,-2.75,-2.51,-2.27,-2.03,-1.79,-1.55,-1.32,-1.1,-0.89,-0.7,-0.53,-0.37,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.21,0.76,1.55,2.54,3.63,4.78,5.93,7.06,8.11,9.06,9.84,10.46,10.86,11,10.63,9.59,7.95,5.81,3.29,0.39,-2.77,-6.09,-9.5,-12.91,-16.23,-19.39,-22.29,-24.81,-26.95,-28.59,-29.63,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.85,-29.42,-28.75,-27.85,-26.79,-25.54,-24.16,-22.68,-21.12,-19.47,-17.8,-16.08,-14.34,-12.66,-11,-9.37,-7.84,-6.38,-5.02,-3.8,-2.72,-1.79,-1.03,-0.47,-0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.26,0.55,0.95,1.43,1.99,2.59,3.25,3.94,4.65,5.35,6.06,6.75,7.41,8.01,8.57,9.05,9.45,9.74,9.93,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.5,8.21,6.33,4,1.41,-1.29,-4.03,-6.69,-9.17,-11.41,-13.27,-14.73,-15.67,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.92,-15.69,-15.31,-14.82,-14.21,-13.52,-12.72,-11.88,-10.98,-10.04,-9.1,-8.12,-7.16,-6.21,-5.28,-4.39,-3.57,-2.81,-2.11,-1.5,-0.98,-0.56,-0.25,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.48,-0.99,-1.61,-2.31,-3.04,-3.78,-4.49,-5.16,-5.76,-6.26,-6.66,-6.91,-7,-6.78,-6.17,-5.24,-4.03,-2.62,-1.01,0.7,2.49,4.33,6.2,8.01,9.78,11.46,13,14.42,15.63,16.62,17.36,17.83,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.91,17.65,17.25,16.71,16.07,15.32,14.5,13.61,12.67,11.68,10.68,9.65,8.6,7.59,6.6,5.62,4.71,3.83,3.01,2.28,1.63,1.07,0.62,0.28,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.11,0.19,0.29,0.4,0.52,0.65,0.79,0.93,1.07,1.21,1.35,1.48,1.6,1.71,1.81,1.89,1.95,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.89,1.59,1.15,0.62,0.02,-0.61,-1.24,-1.85,-2.42,-2.94,-3.37,-3.71,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.98,-3.92,-3.83,-3.7,-3.55,-3.38,-3.18,-2.97,-2.75,-2.51,-2.27,-2.03,-1.79,-1.55,-1.32,-1.1,-0.89,-0.7,-0.53,-0.37,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.014,-0.05,-0.11,-0.18,-0.25,-0.33,-0.42,-0.49,-0.56,-0.61,-0.65,-0.68,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.687,-0.677,-0.661,-0.64,-0.62,-0.59,-0.56,-0.52,-0.49,-0.45,-0.41,-0.37,-0.33,-0.29,-0.25,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.024,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.002,-0.004,-0.007,-0.009,-0.013,-0.016,-0.02,-0.025,-0.03,-0.035,-0.041,-0.047,-0.054,-0.061,-0.068,-0.075,-0.083,-0.091,-0.1,-0.109,-0.117,-0.127,-0.136,-0.146,-0.155,-0.165,-0.176,-0.186,-0.197,-0.207,-0.218,-0.229,-0.24,-0.252,-0.263,-0.274,-0.286,-0.297,-0.309,-0.32,-0.332,-0.343,-0.355,-0.367,-0.378,-0.39,-0.401,-0.413,-0.424,-0.435,-0.446,-0.457,-0.468,-0.479,-0.49,-0.5,-0.511,-0.521,-0.531,-0.541,-0.55,-0.56,-0.569,-0.578,-0.586,-0.595,-0.603,-0.611,-0.618,-0.625,-0.632,-0.639,-0.645,-0.651,-0.656,-0.662,-0.666,-0.671,-0.675,-0.678,-0.681,-0.684,-0.686,-0.688,-0.689,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.686,-0.677,-0.66,-0.64,-0.61,-0.58,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.15,-0.12,-0.09,-0.06,-0.04,-0.024,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.982,-0.93,-0.85,-0.75,-0.62,-0.48,-0.33,-0.17,0,0.17,0.33,0.48,0.62,0.75,0.85,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.995,0.982,0.961,0.94,0.91,0.88,0.85,0.82,0.8,0.78,0.763,0.753,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.746,0.736,0.719,0.7,0.67,0.64,0.6,0.57,0.53,0.49,0.44,0.4,0.36,0.32,0.28,0.23,0.2,0.16,0.13,0.09,0.07,0.04,0.026,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.007,0.01,0.014,0.018,0.022,0.027,0.033,0.038,0.045,0.052,0.059,0.066,0.074,0.082,0.09,0.099,0.108,0.118,0.128,0.138,0.148,0.158,0.169,0.18,0.191,0.202,0.214,0.226,0.237,0.249,0.261,0.274,0.286,0.298,0.311,0.323,0.336,0.348,0.361,0.373,0.386,0.399,0.411,0.424,0.436,0.448,0.461,0.473,0.485,0.497,0.509,0.521,0.533,0.544,0.555,0.566,0.577,0.588,0.598,0.608,0.618,0.628,0.637,0.647,0.655,0.664,0.672,0.68,0.687,0.694,0.701,0.708,0.714,0.719,0.724,0.729,0.733,0.737,0.74,0.743,0.746,0.748,0.749,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.746,0.735,0.718,0.69,0.67,0.63,0.6,0.56,0.51,0.47,0.43,0.38,0.34,0.29,0.25,0.21,0.17,0.13,0.1,0.07,0.05,0.026,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.38,0.83,1.42,2.13,2.95,3.86,4.81,5.82,6.85,7.9,8.9,9.9,10.84,11.73,12.52,13.24,13.85,14.34,14.7,14.92,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14.88,14.53,13.98,13.28,12.42,11.46,10.4,9.27,8.09,6.89,5.65,4.43,3.24,2.06,0.97,-0.06,-1.01,-1.86,-2.59,-3.18,-3.63,-3.9,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.23,-0.5,-0.85,-1.28,-1.77,-2.32,-2.88,-3.49,-4.11,-4.74,-5.34,-5.94,-6.5,-7.04,-7.51,-7.94,-8.31,-8.6,-8.82,-8.95,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,-0.14,-0.53,-1.13,-1.9,-2.81,-3.83,-4.93,-6.07,-7.25,-8.45,-9.61,-10.74,-11.82,-12.8,-13.71,-14.48,-15.12,-15.59,-15.89,-16,-15.9,-15.6,-15.14,-14.55,-13.83,-13.02,-12.13,-11.18,-10.18,-9.17,-8.13,-7.1,-6.09,-5.11,-4.18,-3.32,-2.52,-1.8,-1.19,-0.69,-0.31,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.39,0.66,1,1.37,1.8,2.24,2.72,3.2,3.68,4.15,4.62,5.06,5.47,5.84,6.18,6.46,6.69,6.86,6.96,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.95,6.82,6.61,6.33,5.99,5.59,5.14,4.64,4.12,3.54,2.95,2.34,1.71,1.06,0.41,-0.25,-0.89,-1.53,-2.15,-2.76,-3.35,-3.91,-4.43,-4.93,-5.37,-5.78,-6.13,-6.43,-6.67,-6.85,-6.96,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0,0.002,0.003,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.008,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.004,-0.011,-0.03,-0.06,-0.09,-0.12,-0.15,-0.18,-0.21,-0.24,-0.26,-0.275,-0.286,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.285,-0.272,-0.25,-0.22,-0.19,-0.16,-0.12,-0.09,-0.05,-0.02,0.01,0.04,0.06,0.076,0.087,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.004,0.009,0.014,0.022,0.03,0.039,0.048,0.058,0.068,0.079,0.089,0.099,0.109,0.118,0.127,0.135,0.142,0.148,0.153,0.157,0.159,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.166,0.183,0.21,0.24,0.27,0.31,0.34,0.38,0.41,0.44,0.46,0.483,0.496,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.498,0.492,0.482,0.47,0.456,0.441,0.425,0.409,0.393,0.378,0.365,0.353,0.343,0.336,0.332,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0.001,0.006,0.013,0.023,0.036,0.052,0.071,0.09,0.12,0.15,0.18,0.21,0.25,0.29,0.33,0.38,0.43,0.48,0.54,0.6,0.66,0.73,0.8,0.87,0.94,1.02,1.11,1.19,1.28,1.38,1.47,1.57,1.68,1.78,1.89,2.01,2.13,2.25,2.37,2.5,2.64,2.77,2.91,3.04,3.17,3.3,3.42,3.54,3.65,3.76,3.86,3.96,4.06,4.15,4.24,4.33,4.41,4.48,4.55,4.61,4.67,4.73,4.78,4.83,4.87,4.9,4.93,4.96,4.975,4.989,4.997,5,4.96,4.84,4.67,4.44,4.18,3.87,3.55,3.21,2.86,2.5,2.15,1.81,1.48,1.17,0.89,0.64,0.42,0.26,0.14,0.07,0.03,0.01,-0.007,-0.013,-0.014,-0.012,-0.008,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0.8,2.82,5.55,8.74,12.06,15.33,18.43,21.04,23.14,24.5,25,24.75,24.04,22.89,21.38,19.52,17.4,14.97,12.38,9.63,6.75,3.86,0.86,-2.08,-4.99,-7.82,-10.55,-13.06,-15.41,-17.54,-19.41,-21.01,-22.28,-23.22,-23.8,-24,-23.98,-23.91,-23.81,-23.66,-23.48,-23.26,-23.01,-22.72,-22.41,-22.06,-21.69,-21.29,-20.87,-20.42,-19.96,-19.47,-18.96,-18.43,-17.9,-17.34,-16.77,-16.19,-15.6,-15.01,-14.41,-13.79,-13.17,-12.56,-11.93,-11.31,-10.68,-10.07,-9.44,-8.83,-8.21,-7.61,-7.02,-6.42,-5.84,-5.28,-4.73,-4.19,-3.66,-3.15,-2.66,-2.19,-1.73,-1.3,-0.89,-0.51,-0.16,0.07,0.19,0.23,0.211,0.17,0.11,0.05,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.27,0.59,1.02,1.56,2.19,2.9,3.68,4.53,5.44,6.4,7.39,8.42,9.46,10.5,11.54,12.58,13.61,14.6,15.56,16.47,17.32,18.1,18.81,19.44,19.98,20.41,20.73,20.93,21,20.81,20.27,19.45,18.39,17.14,15.73,14.22,12.65,11.03,9.39,7.79,6.23,4.75,3.4,2.15,1.09,0.21,-0.43,-0.85,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1.06,1.06,1.06,1.06,1.06,1.059,1.06,1.057,1.057,1.056,1.055,1.053,1.052,1.05,1.049,1.047,1.045,1.043,1.041,1.039,1.036,1.034,1.031,1.028,1.025,1.022,1.019,1.015,1.012,1.008,1.004,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1.06,1.06,1.06,1.06,1.06,1.059,1.06,1.057,1.057,1.056,1.055,1.053,1.052,1.05,1.049,1.047,1.045,1.043,1.041,1.039,1.036,1.034,1.031,1.028,1.025,1.022,1.019,1.015,1.012,1.008,1.004,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,-0.007,-0.027,-0.06,-0.09,-0.14,-0.18,-0.23,-0.28,-0.33,-0.38,-0.43,-0.47,-0.51,-0.54,-0.56,-0.575,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.578,-0.577,-0.576,-0.574,-0.571,-0.569,-0.566,-0.562,-0.558,-0.553,-0.548,-0.542,-0.535,-0.528,-0.521,-0.512,-0.503,-0.494,-0.485,-0.475,-0.466,-0.457,-0.448,-0.439,-0.43,-0.421,-0.412,-0.403,-0.394,-0.385,-0.376,-0.368,-0.359,-0.35,-0.342,-0.333,-0.325,-0.316,-0.308,-0.3,-0.291,-0.283,-0.275,-0.267,-0.259,-0.252,-0.244,-0.236,-0.229,-0.221,-0.214,-0.206,-0.199,-0.192,-0.185,-0.178,-0.171,-0.165,-0.158,-0.152,-0.145,-0.139,-0.133,-0.127,-0.121,-0.115,-0.109,-0.104,-0.098,-0.093,-0.088,-0.083,-0.078,-0.073,-0.068,-0.064,-0.059,-0.055,-0.051,-0.047,-0.043,-0.039,-0.036,-0.032,-0.029,-0.026,-0.023,-0.02,-0.018,-0.016,-0.013,-0.011,-0.009,-0.008,-0.006,-0.005,-0.003,-0.002,-0.002,-0.001,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=1
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=1
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.12,0.21,0.32,0.45,0.6,0.76,0.95,1.14,1.36,1.58,1.82,2.06,2.31,2.57,2.83,3.1,3.37,3.63,3.9,4.17,4.43,4.69,4.94,5.18,5.42,5.64,5.86,6.05,6.24,6.4,6.55,6.68,6.79,6.88,6.95,6.99,7,6.96,6.86,6.71,6.5,6.25,5.96,5.64,5.29,4.93,4.54,4.15,3.75,3.35,2.95,2.57,2.19,1.83,1.49,1.17,0.89,0.63,0.42,0.24,0.11,0.03,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.019,0.08,0.17,0.29,0.45,0.64,0.85,1.09,1.35,1.63,1.94,2.26,2.59,2.94,3.3,3.67,4.05,4.42,4.81,5.19,5.58,5.95,6.33,6.7,7.06,7.41,7.74,8.06,8.37,8.65,8.91,9.15,9.36,9.55,9.71,9.83,9.92,9.98,10,9.8,9.23,8.33,7.14,5.72,4.05,2.22,0.24,-1.84,-4.05,-6.27,-8.57,-10.88,-13.12,-15.33,-17.51,-19.54,-21.49,-23.3,-24.93,-26.38,-27.62,-28.62,-29.37,-29.84,-30,-28.59,-24.89,-19.55,-13.44,-7.1,-1.19,3.86,7.71,10.14,11,9.23,5.41,0.64,-4.31,-8.84,-12.58,-15.07,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.83,-29.35,-28.58,-27.57,-26.33,-24.9,-23.26,-21.5,-19.53,-17.48,-15.29,-12.96,-10.52,-8.02,-5.43,-2.75,0,3.19,5.69,7.65,9.21,10.41,11.32,12.01,12.48,12.78,12.95,13,12.98,12.91,12.8,12.65,12.47,12.24,11.98,11.69,11.37,11.03,10.64,10.24,9.82,9.37,8.91,8.43,7.93,7.43,6.91,6.38,5.84,5.3,4.75,4.2,3.65,3.1,2.54,2,1.39,0.83,0.31,-0.17,-0.6,-1.01,-1.38,-1.71,-2.01,-2.29,-2.54,-2.77,-2.97,-3.15,-3.31,-3.45,-3.56,-3.67,-3.75,-3.83,-3.88,-3.93,-3.96,-3.98,-3.996,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=0,0,0,0,0,0,0,0.001,0,0,0.002,0,0.003,0,0.005,0.005,0.01,0.007,0.008,0.008,0.009,0.01,0.011,0.013,0.014,0.015,0.016,0.017,0.019,0.02,0.022,0.023,0.025,0.026,0.028,0.03,0.032,0.033,0.035,0.037,0.039,0.041,0.043,0.046,0.048,0.05,0.052,0.055,0.057,0.06,0.062,0.065,0.068,0.071,0.073,0.076,0.079,0.082,0.085,0.089,0.092,0.095,0.098,0.102,0.105,0.109,0.112,0.116,0.12,0.123,0.127,0.131,0.135,0.139,0.143,0.147,0.151,0.156,0.16,0.165,0.169,0.174,0.24,0.39,0.59,0.79,0.94,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=0,0,0,0,0,0,0,0.001,0,0.002,0,0.003,0,0.004,0.005,0.01,0.007,0.008,0.008,0.009,0.011,0.012,0.013,0.014,0.015,0.017,0.018,0.019,0.021,0.022,0.024,0.026,0.028,0.029,0.031,0.033,0.035,0.037,0.039,0.042,0.044,0.046,0.048,0.051,0.053,0.056,0.059,0.061,0.064,0.067,0.07,0.073,0.076,0.079,0.082,0.085,0.088,0.092,0.095,0.099,0.102,0.106,0.11,0.113,0.117,0.121,0.125,0.129,0.133,0.137,0.142,0.146,0.151,0.155,0.16,0.164,0.169,0.174,0.179,0.184,0.189,0.194,0.26,0.41,0.6,0.79,0.94,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.005,-0.009,-0.014,-0.02,-0.027,-0.035,-0.043,-0.052,-0.062,-0.072,-0.083,-0.094,-0.106,-0.117,-0.129,-0.142,-0.154,-0.166,-0.178,-0.191,-0.203,-0.214,-0.226,-0.237,-0.248,-0.258,-0.268,-0.277,-0.285,-0.293,-0.3,-0.306,-0.311,-0.315,-0.318,-0.319,-0.32,-0.309,-0.28,-0.23,-0.18,-0.13,-0.08,-0.03,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.007,0.006,0.004,0.003,0.002,0.001,0,0,0,0.002,0.004,0.006,0.007,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.002,0.003,0.004,0.005,0.007,0.009,0.01,0.012,0.014,0.017,0.019,0.022,0.025,0.028,0.031,0.034,0.038,0.041,0.045,0.049,0.053,0.058,0.062,0.067,0.072,0.077,0.082,0.087,0.093,0.099,0.105,0.111,0.117,0.123,0.13,0.136,0.142,0.147,0.151,0.154,0.157,0.159,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.141,0.09,0.02,-0.06,-0.14,-0.22,-0.29,-0.34,-0.37,-0.38,-0.34,-0.27,-0.17,-0.07,0.02,0.09,0.14,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.16,-0.36,-0.65,-1.03,-1.48,-2.03,-2.65,-3.37,-4.17,-5.05,-6,-7.04,-8.15,-9.34,-10.61,-11.93,-13.34,-14.8,-16.62,-18.27,-19.83,-21.25,-22.55,-23.74,-24.83,-25.8,-26.69,-27.45,-28.12,-28.69,-29.16,-29.52,-29.79,-29.95,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.33,0.73,1.27,1.94,2.74,3.65,4.64,5.73,6.91,8.15,9.42,10.76,12.12,13.52,14.94,16.35,17.78,19.2,20.88,22.32,23.61,24.72,25.68,26.52,27.25,27.85,28.38,28.81,29.16,29.44,29.66,29.82,29.92,29.98,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.65,-1.12,-1.66,-2.28,-2.95,-3.65,-4.36,-5.07,-5.76,-6.41,-7.01,-7.55,-8.01,-8.39,-8.67,-8.84,-8.9,-8.41,-7.1,-5.1,-2.61,0.27,3.41,6.75,10.09,13.5,16.72,19.78,22.59,25.07,27.11,28.66,29.65,30,29.86,29.47,28.86,28.08,27.18,26.18,25.16,24.11,23.1,22.12,21.25,20.48,19.85,19.39,19.1,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.011,0.025,0.043,0.07,0.09,0.12,0.16,0.19,0.23,0.27,0.31,0.35,0.39,0.43,0.47,0.51,0.56,0.59,0.64,0.68,0.71,0.74,0.77,0.788,0.806,0.82,0.833,0.842,0.85,0.856,0.86,0.863,0.865,0.866,0.866,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
46
Live2dHistoire/live2d/model/histoire/motions/tap/m_06.mtn
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=300
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.3,-27.35,-24.27,-20.36,-15.69,-10.61,-5.24,0.24,5.61,10.69,15.36,19.27,22.35,24.3,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,-0.002,-0.006,-0.012,-0.017,-0.022,-0.026,-0.029,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.028,-0.022,-0.015,-0.008,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
46
Live2dHistoire/live2d/model/histoire/motions/tap/m_13.mtn
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=200
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,-0.69,-2.49,-5.1,-8.08,-11.17,-14.05,-16.52,-18.4,-19.58,-20,-19.62,-18.63,-17.18,-15.39,-13.4,-11.31,-9.21,-7.16,-5.25,-3.53,-2.1,-0.98,-0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0,0,0,0,0,0,-0.003,-0.012,-0.026,-0.045,-0.07,-0.09,-0.12,-0.15,-0.18,-0.21,-0.23,-0.26,-0.28,-0.31,-0.324,-0.339,-0.351,-0.358,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0,0,0,0,0,0,-0.003,-0.012,-0.026,-0.044,-0.07,-0.09,-0.12,-0.14,-0.17,-0.2,-0.23,-0.25,-0.28,-0.3,-0.315,-0.33,-0.341,-0.348,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0,0,0,0,0,0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.14,-0.18,-0.21,-0.25,-0.28,-0.31,-0.34,-0.36,-0.39,-0.405,-0.419,-0.427,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0,0,0,0,0,0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.14,-0.18,-0.21,-0.25,-0.28,-0.31,-0.34,-0.36,-0.39,-0.405,-0.419,-0.427,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0,0,0,0,0,0,-0.004,-0.016,-0.035,-0.06,-0.09,-0.12,-0.16,-0.19,-0.23,-0.27,-0.3,-0.34,-0.37,-0.4,-0.42,-0.443,-0.458,-0.467,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0,0,0,0,0,0,-0.004,-0.017,-0.035,-0.06,-0.09,-0.12,-0.16,-0.2,-0.24,-0.27,-0.31,-0.35,-0.38,-0.41,-0.43,-0.452,-0.467,-0.477,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.87,0.59,0.23,-0.13,-0.47,-0.75,-0.93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
PARAM_SHOULDER_X=6.4,6.36,6.24,6.05,5.79,5.48,5.13,4.74,4.32,3.88,3.42,2.98,2.52,2.08,1.66,1.27,0.92,0.61,0.35,0.16,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.49,1,1.64,2.34,3.08,3.83,4.56,5.23,5.85,6.35,6.75,7.01,7.1,7.099,7.097,7.092,7.084,7.072,7.057,7.04,7.01,6.98,6.94,6.9,6.84,6.78,6.71,6.63,6.54,6.44,6.33,6.2,6.07,5.92,5.76,5.58,5.39,5.1,4.69,4.19,3.63,3.04,2.44,1.87,1.35,0.89,0.51,0.23,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.22,0.45,0.4,0.35,0.3,0.25,0.2,0.15,0.38,0.61,0.58,0.54,0.51,0.47,0.481,0.492,0.502,0.512,0.523,0.533,0.46,0.38,0.19,0,0.46,0.93,0.74,0.55,0.58,0.61,0.64,0.67,0.7,0.73,0.62,0.51,0.4,0.29,0.56,0.84,0.76,0.67,0.65,0.63,0.61,0.59,0.57,0.55,0.53,0.51,0.48,0.46,0.24,0.01,0.35,0.69,0.53,0.37,0.55,0.73,0.733,0.737,0.64,0.53,0.43,0.33,0.62,0.91,0.84,0.76,0.767,0.773,0.778,0.784,0.68,0.58,0.47,0.37,0.378,0.388,0.398,0.408,0.34,0.27,0.2,0.14,0.07,0,0.01,0.02,0.029,0.039,0.34,0.64,0.58,0.52,0.27,0.02,0.47,0.91,0.82,0.73,0.65,0.56,0.6,0.64,0.68,0.72,0.69,0.66,0.63,0.6,0.45,0.3,0.6,0.91,0.77,0.63,0.69,0.75,0.67,0.6,0.36,0.12,0.44,0.77,0.75,0.732,0.714,0.695,0.677,0.659,0.58,0.51,0.514,0.518,0.26,0,0.43,0.86,0.82,0.77,0.38,0,0.29,0.58,0.51,0.43,0.53,0.64,0.51,0.38,0.19,0,0.38,0.77,0.759,0.75,0.741,0.732,0.723,0.714,0.66,0.61,0.46,0.31,0.15,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_FACE_COVER=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_FEAR=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,0.999,0.998,0.996,0.995,0.993,0.99,0.988,0.985,0.983,0.979,0.976,0.973,0.969,0.965,0.961,0.956,0.952,0.947,0.943,0.938,0.933,0.927,0.922,0.917,0.911,0.906,0.9,0.894,0.889,0.883,0.877,0.871,0.865,0.859,0.853,0.847,0.841,0.835,0.829,0.823,0.817,0.811,0.806,0.8,0.794,0.789,0.783,0.778,0.773,0.767,0.762,0.757,0.753,0.748,0.744,0.739,0.735,0.731,0.727,0.724,0.721,0.717,0.715,0.712,0.71,0.707,0.705,0.704,0.702,0.701,0.701,0.7,0.7,0.71,0.74,0.78,0.82,0.87,0.91,0.95,0.98,0.994,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.987,0.981,0.974,0.967,0.959,0.951,0.943,0.935,0.928,0.921,0.915,0.91,0.906,0.903,0.901,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.901,0.905,0.91,0.917,0.926,0.935,0.944,0.954,0.963,0.972,0.98,0.987,0.992,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=-1
|
||||||
|
|
||||||
|
PARAM_TEAR=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_DEFORMED=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.16,-0.25,-0.31,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.342,-0.344,-0.347,-0.351,-0.355,-0.36,-0.367,-0.374,-0.382,-0.392,-0.402,-0.414,-0.427,-0.441,-0.456,-0.473,-0.49,-0.51,-0.531,-0.551,-0.57,-0.589,-0.608,-0.626,-0.643,-0.66,-0.677,-0.693,-0.709,-0.723,-0.737,-0.751,-0.764,-0.776,-0.787,-0.797,-0.807,-0.816,-0.824,-0.832,-0.838,-0.844,-0.849,-0.853,-0.856,-0.858,-0.86,-0.86,-0.859,-0.856,-0.851,-0.845,-0.837,-0.827,-0.816,-0.803,-0.79,-0.775,-0.76,-0.743,-0.726,-0.708,-0.689,-0.67,-0.651,-0.632,-0.612,-0.593,-0.573,-0.554,-0.535,-0.516,-0.498,-0.48,-0.463,-0.446,-0.431,-0.416,-0.403,-0.391,-0.379,-0.369,-0.361,-0.353,-0.348,-0.343,-0.341,-0.34
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,0.999,0.998,0.996,0.995,0.993,0.99,0.988,0.985,0.983,0.979,0.976,0.973,0.969,0.965,0.961,0.956,0.952,0.947,0.943,0.938,0.933,0.927,0.922,0.917,0.911,0.906,0.9,0.894,0.889,0.883,0.877,0.871,0.865,0.859,0.853,0.847,0.841,0.835,0.829,0.823,0.817,0.811,0.806,0.8,0.794,0.789,0.783,0.778,0.773,0.767,0.762,0.757,0.753,0.748,0.744,0.739,0.735,0.731,0.727,0.724,0.721,0.717,0.715,0.712,0.71,0.707,0.705,0.704,0.702,0.701,0.701,0.7,0.7,0.71,0.74,0.78,0.82,0.87,0.91,0.95,0.98,0.994,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.994,0.989,0.984,0.978,0.971,0.964,0.957,0.949,0.942,0.935,0.928,0.922,0.916,0.911,0.906,0.903,0.9,0.898,0.896,0.894,0.893,0.892,0.891,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.891,0.895,0.901,0.909,0.918,0.928,0.938,0.949,0.959,0.969,0.977,0.985,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_HAIR_BACK=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,0.999,0.998,0.996,0.995,0.993,0.99,0.987,0.984,0.981,0.977,0.972,0.968,0.962,0.957,0.951,0.944,0.937,0.929,0.921,0.913,0.903,0.894,0.883,0.873,0.861,0.849,0.837,0.823,0.81,0.795,0.78,0.762,0.745,0.728,0.712,0.696,0.681,0.667,0.654,0.641,0.63,0.62,0.611,0.604,0.598,0.594,0.591,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59
|
||||||
|
|
||||||
|
PARAM_HAIR_FRONT=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.007,0.016,0.027,0.039,0.054,0.071,0.088,0.105,0.122,0.139,0.156,0.171,0.183,0.194,0.203,0.208,0.21,0.209,0.205,0.199,0.191,0.182,0.17,0.157,0.142,0.126,0.109,0.091,0.072,0.052,0.03,0.011,-0.01,-0.03,-0.05,-0.072,-0.09,-0.112,-0.131,-0.149,-0.166,-0.182,-0.197,-0.21,-0.222,-0.231,-0.239,-0.245,-0.249,-0.25,-0.242,-0.22,-0.19,-0.15,-0.1,-0.05,0,0.06,0.11,0.16,0.21,0.26,0.3,0.33,0.36,0.374,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.91,-0.78,-0.65,-0.56,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.521,-0.52,-0.52,-0.52,-0.52,-0.521,-0.52,-0.519,-0.518,-0.517,-0.516,-0.514,-0.512,-0.51,-0.506,-0.499,-0.491,-0.48,-0.467,-0.452,-0.436,-0.418,-0.399,-0.38,-0.36,-0.34,-0.32,-0.29,-0.27,-0.25,-0.23,-0.21,-0.188,-0.169,-0.15,-0.133,-0.117,-0.102,-0.089,-0.078,-0.068,-0.06,-0.055,-0.051,-0.05,-0.053,-0.061,-0.075,-0.092,-0.11,-0.14,-0.17,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.41,-0.44,-0.46,-0.48,-0.495,-0.505,-0.51,-0.512,-0.514,-0.515,-0.517,-0.518,-0.519,-0.519,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52
|
||||||
|
|
||||||
|
PARAM_EYE_DEFORMED_04=0
|
||||||
|
|
||||||
|
PARAM_EYE_DEFORMED_03=0
|
||||||
|
|
||||||
|
PARAM_EYE_DEFORMED_02=0
|
||||||
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=1000
|
||||||
|
|
||||||
|
$fadeout=0
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_L_OPEN=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_L_OPEN=200
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_L_SMILE=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_L_SMILE=200
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_R_OPEN=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_R_OPEN=200
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_R_SMILE=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_R_SMILE=200
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0.07,0.28,0.59,1.01,1.5,2.05,2.65,3.28,3.92,4.56,5.18,5.76,6.3,6.78,7.2,7.54,7.79,7.95,8,7.93,7.73,7.4,6.96,6.43,5.81,5.12,4.38,3.57,2.73,1.88,1,0.12,-0.73,-1.57,-2.38,-3.12,-3.81,-4.43,-4.96,-5.4,-5.73,-5.93,-6,-5.81,-5.31,-4.53,-3.57,-2.46,-1.25,0.04,1.32,2.64,3.88,5.06,6.14,7.1,7.88,8.48,8.87,9,8.97,8.89,8.75,8.57,8.35,8.1,7.8,7.48,7.15,6.78,6.4,6,5.6,5.18,4.76,4.34,3.93,3.52,3.12,2.72,2.35,1.99,1.65,1.33,1.05,0.79,0.56,0.36,0.21,0.09,0.02,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,-0.05,-0.2,-0.43,-0.74,-1.12,-1.56,-2.06,-2.59,-3.16,-3.77,-4.37,-5,-5.63,-6.23,-6.84,-7.41,-7.94,-8.44,-8.88,-9.26,-9.57,-9.8,-9.95,-10,-9.94,-9.75,-9.44,-9.03,-8.51,-7.92,-7.24,-6.49,-5.68,-4.82,-3.9,-2.96,-1.98,-0.99,0,0.99,1.98,2.96,3.9,4.82,5.68,6.49,7.24,7.92,8.51,9.03,9.44,9.75,9.94,10,9.98,9.91,9.8,9.66,9.49,9.28,9.04,8.77,8.49,8.18,7.85,7.51,7.15,6.79,6.41,6.03,5.64,5.25,4.85,4.46,4.07,3.7,3.32,2.96,2.61,2.27,1.95,1.64,1.35,1.09,0.85,0.64,0.45,0.29,0.17,0.08,0.02,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,0.74,0.26,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0,0.001,0.005,0.012,0.02,0.031,0.043,0.058,0.074,0.091,0.11,0.13,0.15,0.17,0.19,0.22,0.24,0.26,0.28,0.31,0.33,0.35,0.37,0.39,0.409,0.426,0.442,0.457,0.469,0.48,0.488,0.495,0.499,0.5,0.37,0.13,0,0,0.04,0.13,0.24,0.34,0.43,0.48,0.5,0.5,0.5,0.5,0.5,0.37,0.13,0,0,0.04,0.13,0.24,0.34,0.43,0.48,0.5,0.499,0.495,0.488,0.48,0.469,0.457,0.442,0.426,0.409,0.39,0.37,0.35,0.33,0.31,0.28,0.26,0.24,0.22,0.19,0.17,0.15,0.13,0.11,0.091,0.074,0.058,0.043,0.031,0.02,0.012,0.005,0.001,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,0.74,0.26,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0,0.001,0.005,0.012,0.02,0.031,0.043,0.058,0.074,0.091,0.11,0.13,0.15,0.17,0.19,0.22,0.24,0.26,0.28,0.31,0.33,0.35,0.37,0.39,0.409,0.426,0.442,0.457,0.469,0.48,0.488,0.495,0.499,0.5,0.37,0.13,0,0,0.04,0.13,0.24,0.34,0.43,0.48,0.5,0.5,0.5,0.5,0.5,0.37,0.13,0,0,0.04,0.13,0.24,0.34,0.43,0.48,0.5,0.499,0.495,0.488,0.48,0.469,0.457,0.442,0.426,0.409,0.39,0.37,0.35,0.33,0.31,0.28,0.26,0.24,0.22,0.19,0.17,0.15,0.13,0.11,0.091,0.074,0.058,0.043,0.031,0.02,0.012,0.005,0.001,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_TEAR=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=1
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=1000
|
||||||
|
|
||||||
|
$fadeout=0
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_L_OPEN=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_L_OPEN=200
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_L_SMILE=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_L_SMILE=200
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_R_OPEN=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_R_OPEN=200
|
||||||
|
|
||||||
|
$fadein:PARAM_EYE_R_SMILE=200
|
||||||
|
|
||||||
|
$fadeout:PARAM_EYE_R_SMILE=200
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,-0.69,-2.49,-5.1,-8.08,-11.17,-14.05,-16.52,-18.4,-19.58,-20,-16.72,-9.64,-0.81,8.36,16.73,23.67,28.28,30,29.7,28.9,27.66,26.1,24.37,22.5,20.63,18.9,17.34,16.1,15.3,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,-0.19,-0.72,-1.55,-2.61,-3.84,-5.2,-6.6,-8.03,-9.41,-10.74,-11.93,-12.98,-13.84,-14.47,-14.87,-15,-14.81,-14.28,-13.45,-12.39,-11.16,-9.8,-8.4,-6.97,-5.59,-4.26,-3.07,-2.02,-1.16,-0.53,-0.13,0,0,0,0,0,0,0,0,0.6,2.21,4.69,7.8,11.26,15,18.74,22.2,25.31,27.79,29.4,30,29.94,29.76,29.48,29.11,28.68,28.19,27.65,27.08,26.5,25.92,25.35,24.81,24.32,23.89,23.52,23.24,23.06,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,0.993,0.975,0.95,0.92,0.88,0.85,0.83,0.807,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,0.993,0.975,0.95,0.92,0.88,0.85,0.83,0.807,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=1
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,0.992,0.972,0.94,0.91,0.88,0.85,0.82,0.79,0.77,0.755,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,0.992,0.972,0.94,0.91,0.88,0.85,0.82,0.79,0.77,0.755,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=1000
|
||||||
|
|
||||||
|
$fadeout=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0.03,0.13,0.3,0.53,0.81,1.15,1.54,1.98,2.47,3.01,3.59,4.2,4.85,5.54,6.25,7.01,7.78,8.58,9.39,10.22,11.06,11.93,12.81,13.68,14.56,15.44,16.32,17.19,18.07,18.94,19.78,20.61,21.42,22.22,22.99,23.75,24.46,25.15,25.8,26.41,26.99,27.53,28.02,28.46,28.85,29.19,29.47,29.7,29.87,29.97,30,29.6,28.49,26.69,24.3,21.47,18.22,14.55,10.77,6.72,2.59,-1.58,-5.6,-9.6,-13.37,-16.91,-20.09,-22.94,-25.39,-27.34,-28.8,-29.69,-30,-29.994,-29.973,-29.94,-29.89,-29.82,-29.73,-29.62,-29.49,-29.34,-29.17,-28.97,-28.74,-28.48,-28.2,-27.89,-27.54,-27.16,-26.75,-26.3,-25.82,-25.3,-24.74,-24.14,-23.5,-22.81,-22.09,-21.3,-20.49,-19.61,-18.7,-17.72,-16.71,-15.63,-14.51,-13.32,-12.09,-10.78,-9.41,-8,-6.44,-4.83,-3.22,-1.58,0.05,1.7,3.36,5.01,6.62,8.26,9.84,11.4,12.94,14.44,15.9,17.33,18.68,19.99,21.24,22.42,23.54,24.59,25.55,26.44,27.23,27.94,28.55,29.06,29.46,29.76,29.94,30,29.98,29.92,29.81,29.65,29.45,29.2,28.88,28.52,28.1,27.61,27.07,26.48,25.81,25.08,24.29,23.44,22.53,21.54,20.5,19.39,18.23,17,15.51,14.05,12.67,11.34,10.07,8.86,7.72,6.66,5.66,4.72,3.87,3.09,2.39,1.78,1.25,0.81,0.46,0.21,0.05,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,-0.03,-0.13,-0.3,-0.53,-0.81,-1.15,-1.54,-1.98,-2.47,-3.01,-3.59,-4.2,-4.85,-5.54,-6.25,-7.01,-7.78,-8.58,-9.39,-10.22,-11.06,-11.93,-12.81,-13.68,-14.56,-15.44,-16.32,-17.19,-18.07,-18.94,-19.78,-20.61,-21.42,-22.22,-22.99,-23.75,-24.46,-25.15,-25.8,-26.41,-26.99,-27.53,-28.02,-28.46,-28.85,-29.19,-29.47,-29.7,-29.87,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.89,-29.54,-28.98,-28.24,-27.29,-26.18,-24.88,-23.46,-21.88,-20.19,-18.36,-16.46,-14.43,-12.36,-10.19,-8,-5.73,-3.46,-1.14,1.14,3.46,5.73,8,10.19,12.36,14.43,16.46,18.36,20.19,21.88,23.46,24.88,26.18,27.29,28.24,28.98,29.54,29.89,30,29.98,29.9,29.77,29.6,29.37,29.08,28.74,28.35,27.91,27.39,26.84,26.22,25.54,24.8,24,23.13,22.21,21.22,20.17,19.05,17.86,16.59,15.28,13.87,12.41,10.87,9.24,7.55,5.78,3.94,2.01,0,-2.21,-4.35,-6.48,-8.57,-10.55,-12.47,-14.37,-16.1,-17.8,-19.38,-20.87,-22.22,-23.49,-24.62,-25.63,-26.51,-27.26,-27.89,-28.37,-28.72,-28.93,-29,-28.75,-28.04,-26.96,-25.56,-23.92,-22.05,-20.06,-17.99,-15.86,-13.69,-11.59,-9.54,-7.58,-5.8,-4.15,-2.75,-1.6,-0.75,-0.19,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0.03,0.13,0.3,0.53,0.81,1.15,1.54,1.98,2.47,3.01,3.59,4.2,4.85,5.54,6.25,7.01,7.78,8.58,9.39,10.22,11.06,11.93,12.81,13.68,14.56,15.44,16.32,17.19,18.07,18.94,19.78,20.61,21.42,22.22,22.99,23.75,24.46,25.15,25.8,26.41,26.99,27.53,28.02,28.46,28.85,29.19,29.47,29.7,29.87,29.97,30,29.6,28.49,26.69,24.3,21.47,18.22,14.55,10.77,6.72,2.59,-1.58,-5.6,-9.6,-13.37,-16.91,-20.09,-22.94,-25.39,-27.34,-28.8,-29.69,-30,-29.91,-29.66,-29.24,-28.68,-27.96,-27.13,-26.16,-25.1,-23.91,-22.64,-21.27,-19.85,-18.32,-16.77,-15.14,-13.5,-11.79,-10.1,-8.36,-6.64,-4.9,-3.21,-1.5,0.14,1.77,3.32,4.85,6.27,7.64,8.91,10.1,11.16,12.13,12.96,13.68,14.24,14.66,14.91,15,14.991,14.97,14.92,14.87,14.79,14.71,14.6,14.49,14.36,14.22,14.07,13.9,13.73,13.54,13.34,13.14,12.92,12.7,12.46,12.22,11.97,11.72,11.46,11.19,10.92,10.64,10.36,10.07,9.79,9.49,9.2,8.9,8.6,8.3,7.99,7.69,7.38,7.08,6.78,6.48,6.18,5.89,5.59,5.3,5.01,4.73,4.44,4.17,3.9,3.63,3.38,3.12,2.87,2.63,2.4,2.18,1.96,1.76,1.56,1.37,1.2,1.03,0.87,0.73,0.6,0.48,0.37,0.27,0.19,0.12,0.07,0.03,0.01,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1.001,1.002,1.004,1.005,1.008,1.01,1.013,1.016,1.02,1.024,1.028,1.032,1.037,1.042,1.047,1.052,1.057,1.063,1.068,1.074,1.08,1.085,1.091,1.097,1.103,1.109,1.115,1.12,1.126,1.132,1.137,1.143,1.148,1.153,1.158,1.163,1.168,1.172,1.176,1.18,1.184,1.187,1.19,1.192,1.195,1.196,1.198,1.199,1.2,1.2,1.2,1.199,1.199,1.197,1.196,1.194,1.192,1.19,1.188,1.185,1.182,1.179,1.176,1.172,1.169,1.165,1.161,1.157,1.153,1.148,1.144,1.139,1.135,1.13,1.125,1.12,1.115,1.111,1.106,1.101,1.096,1.091,1.086,1.081,1.076,1.071,1.067,1.062,1.058,1.053,1.049,1.045,1.041,1.037,1.033,1.029,1.026,1.022,1.019,1.016,1.014,1.011,1.009,1.007,1.005,1.004,1.002,1.001,1.001,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1.001,1.002,1.004,1.005,1.008,1.01,1.013,1.016,1.02,1.024,1.028,1.032,1.037,1.042,1.047,1.052,1.057,1.063,1.068,1.074,1.08,1.085,1.091,1.097,1.103,1.109,1.115,1.12,1.126,1.132,1.137,1.143,1.148,1.153,1.158,1.163,1.168,1.172,1.176,1.18,1.184,1.187,1.19,1.192,1.195,1.196,1.198,1.199,1.2,1.2,1.2,1.199,1.199,1.197,1.196,1.194,1.192,1.19,1.188,1.185,1.182,1.179,1.176,1.172,1.169,1.165,1.161,1.157,1.153,1.148,1.144,1.139,1.135,1.13,1.125,1.12,1.115,1.111,1.106,1.101,1.096,1.091,1.086,1.081,1.076,1.071,1.067,1.062,1.058,1.053,1.049,1.045,1.041,1.037,1.033,1.029,1.026,1.022,1.019,1.016,1.014,1.011,1.009,1.007,1.005,1.004,1.002,1.001,1.001,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_TEAR=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.025,-0.06,-0.09,-0.14,-0.2,-0.26,-0.32,-0.39,-0.46,-0.53,-0.59,-0.66,-0.72,-0.78,-0.83,-0.88,-0.92,-0.96,-0.98,-0.995,-1,-0.999,-0.998,-0.995,-0.991,-0.986,-0.98,-0.972,-0.964,-0.954,-0.943,-0.93,-0.917,-0.902,-0.886,-0.868,-0.849,-0.83,-0.81,-0.78,-0.76,-0.73,-0.71,-0.68,-0.65,-0.61,-0.58,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.3,-0.26,-0.21,-0.16,-0.11,-0.05,0,0.06,0.12,0.17,0.22,0.28,0.33,0.38,0.42,0.47,0.51,0.55,0.59,0.63,0.67,0.7,0.74,0.77,0.8,0.82,0.85,0.87,0.89,0.914,0.932,0.947,0.961,0.973,0.983,0.99,0.996,0.999,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=-0.5,-0.501,-0.502,-0.505,-0.509,-0.514,-0.519,-0.526,-0.533,-0.541,-0.55,-0.56,-0.57,-0.581,-0.592,-0.604,-0.617,-0.63,-0.643,-0.656,-0.67,-0.684,-0.699,-0.713,-0.728,-0.743,-0.757,-0.772,-0.787,-0.801,-0.816,-0.83,-0.844,-0.857,-0.87,-0.883,-0.896,-0.908,-0.919,-0.93,-0.94,-0.95,-0.959,-0.967,-0.974,-0.981,-0.986,-0.991,-0.995,-0.998,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.996,-0.985,-0.966,-0.94,-0.91,-0.87,-0.83,-0.78,-0.73,-0.67,-0.61,-0.55,-0.48,-0.41,-0.34,-0.27,-0.19,-0.12,-0.04,0.04,0.12,0.19,0.27,0.34,0.41,0.48,0.55,0.61,0.67,0.73,0.78,0.83,0.87,0.91,0.94,0.97,0.985,0.996,1,0.999,0.997,0.993,0.987,0.98,0.971,0.96,0.947,0.932,0.916,0.897,0.877,0.85,0.83,0.8,0.78,0.74,0.71,0.68,0.64,0.6,0.56,0.51,0.47,0.42,0.37,0.31,0.25,0.2,0.13,0.07,0,-0.07,-0.15,-0.22,-0.29,-0.36,-0.43,-0.49,-0.55,-0.61,-0.66,-0.72,-0.76,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.978,-0.99,-0.998,-1,-0.996,-0.983,-0.965,-0.94,-0.91,-0.88,-0.85,-0.81,-0.77,-0.74,-0.7,-0.66,-0.63,-0.6,-0.57,-0.55,-0.528,-0.513,-0.503,-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=1
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.999,0.997,0.993,0.987,0.98,0.972,0.962,0.951,0.939,0.926,0.912,0.896,0.88,0.862,0.844,0.825,0.805,0.78,0.76,0.74,0.72,0.7,0.67,0.65,0.63,0.6,0.58,0.55,0.53,0.5,0.48,0.45,0.43,0.4,0.38,0.36,0.33,0.31,0.29,0.27,0.24,0.223,0.2,0.183,0.164,0.146,0.128,0.112,0.097,0.082,0.069,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_CHEEK_01=0
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=1000
|
||||||
|
|
||||||
|
$fadeout=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.26,-0.59,-1.02,-1.54,-2.17,-2.88,-3.68,-4.54,-5.45,-6.44,-7.47,-8.54,-9.64,-10.77,-11.92,-13.09,-14.25,-15.44,-16.62,-17.78,-18.91,-20.03,-21.12,-22.18,-23.19,-24.16,-25.08,-25.94,-26.72,-27.44,-28.09,-28.64,-29.12,-29.49,-29.77,-29.94,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.81,-29.26,-28.39,-27.28,-25.92,-24.41,-22.74,-20.96,-19.08,-17.19,-15.24,-13.31,-11.43,-9.57,-7.84,-6.22,-4.72,-3.38,-2.23,-1.29,-0.59,-0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.26,0.59,1.02,1.54,2.17,2.88,3.68,4.54,5.45,6.44,7.47,8.54,9.64,10.77,11.92,13.09,14.25,15.44,16.62,17.78,18.91,20.03,21.12,22.18,23.19,24.16,25.08,25.94,26.72,27.44,28.09,28.64,29.12,29.49,29.77,29.94,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.81,29.26,28.39,27.28,25.92,24.41,22.74,20.96,19.08,17.19,15.24,13.31,11.43,9.57,7.84,6.22,4.72,3.38,2.23,1.29,0.59,0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.26,-0.59,-1.02,-1.54,-2.17,-2.88,-3.68,-4.54,-5.45,-6.44,-7.47,-8.54,-9.64,-10.77,-11.92,-13.09,-14.25,-15.44,-16.62,-17.78,-18.91,-20.03,-21.12,-22.18,-23.19,-24.16,-25.08,-25.94,-26.72,-27.44,-28.09,-28.64,-29.12,-29.49,-29.77,-29.94,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.61,-28.5,-26.84,-24.66,-22.11,-19.22,-16.13,-12.92,-9.61,-6.25,-2.98,0.2,3.24,6,8.55,10.73,12.52,13.84,14.7,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14.43,12.94,10.77,8.08,5.09,1.97,-1.19,-4.25,-7.12,-9.71,-11.85,-13.53,-14.62,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.9,-14.63,-14.19,-13.64,-12.96,-12.2,-11.37,-10.48,-9.54,-8.6,-7.62,-6.66,-5.71,-4.79,-3.92,-3.11,-2.36,-1.69,-1.12,-0.64,-0.29,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.027,0.06,0.09,0.14,0.19,0.25,0.3,0.36,0.42,0.48,0.54,0.59,0.64,0.69,0.72,0.76,0.78,0.795,0.8,0.793,0.773,0.74,0.71,0.66,0.61,0.55,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.08,0.04,0.02,0.005,0,0.007,0.028,0.06,0.1,0.15,0.2,0.27,0.33,0.39,0.46,0.52,0.58,0.63,0.68,0.72,0.75,0.78,0.795,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.801,0.803,0.806,0.81,0.814,0.82,0.827,0.834,0.841,0.849,0.858,0.867,0.876,0.885,0.894,0.904,0.913,0.922,0.931,0.939,0.948,0.956,0.963,0.97,0.977,0.983,0.988,0.992,0.995,0.998,0.999,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.027,0.06,0.09,0.14,0.19,0.25,0.3,0.36,0.42,0.48,0.54,0.59,0.64,0.69,0.72,0.76,0.78,0.795,0.8,0.793,0.773,0.74,0.71,0.66,0.61,0.55,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.08,0.04,0.02,0.005,0,0.007,0.028,0.06,0.1,0.15,0.2,0.27,0.33,0.39,0.46,0.52,0.58,0.63,0.68,0.72,0.75,0.78,0.795,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.801,0.803,0.806,0.81,0.814,0.82,0.827,0.834,0.841,0.849,0.858,0.867,0.876,0.885,0.894,0.904,0.913,0.922,0.931,0.939,0.948,0.956,0.963,0.97,0.977,0.983,0.988,0.992,0.995,0.998,0.999,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.997,-0.987,-0.972,-0.952,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0
|
||||||
|
|
||||||
|
PARAM_TEAR=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-0.999,-0.995,-0.99,-0.982,-0.973,-0.961,-0.947,-0.932,-0.915,-0.896,-0.875,-0.85,-0.83,-0.81,-0.78,-0.75,-0.72,-0.69,-0.66,-0.63,-0.6,-0.56,-0.53,-0.49,-0.46,-0.42,-0.38,-0.34,-0.3,-0.27,-0.23,-0.19,-0.15,-0.11,-0.07,-0.03,0.01,0.05,0.09,0.12,0.16,0.2,0.24,0.27,0.31,0.34,0.38,0.41,0.45,0.48,0.51,0.54,0.57,0.6,0.62,0.65,0.67,0.69,0.71,0.733,0.75,0.767,0.781,0.794,0.805,0.814,0.821,0.826,0.829,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.813,0.77,0.7,0.61,0.52,0.42,0.31,0.22,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.501,-0.504,-0.51,-0.517,-0.526,-0.536,-0.548,-0.561,-0.576,-0.591,-0.607,-0.625,-0.642,-0.661,-0.679,-0.699,-0.718,-0.738,-0.757,-0.777,-0.796,-0.815,-0.834,-0.852,-0.87,-0.887,-0.903,-0.918,-0.932,-0.945,-0.957,-0.968,-0.977,-0.985,-0.992,-0.996,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.002,-0.006,-0.014,-0.024,-0.036,-0.05,-0.066,-0.084,-0.103,-0.12,-0.14,-0.17,-0.19,-0.21,-0.24,-0.26,-0.28,-0.3,-0.33,-0.35,-0.37,-0.39,-0.408,-0.426,-0.442,-0.456,-0.469,-0.48,-0.488,-0.495,-0.499,-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.991,0.98,0.966,0.949,0.93,0.9,0.88,0.85,0.82,0.79,0.75,0.72,0.68,0.64,0.6,0.56,0.52,0.49,0.45,0.41,0.37,0.33,0.3,0.26,0.23,0.19,0.16,0.14,0.11,0.09,0.06,0.045,0.029,0.017,0.008,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.013,0.028,0.048,0.07,0.1,0.13,0.17,0.21,0.25,0.29,0.33,0.38,0.42,0.47,0.52,0.56,0.61,0.65,0.7,0.74,0.78,0.82,0.85,0.88,0.91,0.94,0.96,0.977,0.989,0.997,1
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.991,-0.97,-0.93,-0.88,-0.82,-0.76,-0.69,-0.62,-0.55,-0.47,-0.4,-0.33,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.31,-0.38,-0.45,-0.53,-0.6,-0.67,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.991,-0.97,-0.93,-0.88,-0.82,-0.76,-0.69,-0.62,-0.55,-0.47,-0.4,-0.33,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.31,-0.38,-0.45,-0.53,-0.6,-0.67,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.997,-0.987,-0.972,-0.952,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.997,-0.987,-0.972,-0.952,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.997,-0.987,-0.972,-0.952,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.997,-0.987,-0.972,-0.952,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.013,-0.029,-0.05,-0.08,-0.11,-0.14,-0.18,-0.23,-0.27,-0.32,-0.37,-0.43,-0.48,-0.54,-0.6,-0.65,-0.71,-0.77,-0.83,-0.89,-0.95,-1,-1.06,-1.11,-1.16,-1.21,-1.25,-1.3,-1.34,-1.37,-1.4,-1.43,-1.46,-1.475,-1.489,-1.497,-1.5,-1.499,-1.498,-1.495,-1.491,-1.487,-1.481,-1.474,-1.467,-1.458,-1.449,-1.438,-1.427,-1.415,-1.402,-1.389,-1.375,-1.36,-1.344,-1.328,-1.311,-1.293,-1.275,-1.256,-1.237,-1.22,-1.197,-1.18,-1.15,-1.13,-1.11,-1.09,-1.07,-1.04,-1.02,-1,-0.97,-0.95,-0.92,-0.9,-0.87,-0.85,-0.82,-0.8,-0.77,-0.75,-0.73,-0.7,-0.68,-0.65,-0.63,-0.6,-0.58,-0.55,-0.53,-0.5,-0.48,-0.46,-0.43,-0.41,-0.39,-0.37,-0.35,-0.32,-0.3,-0.283,-0.26,-0.244,-0.225,-0.207,-0.189,-0.172,-0.156,-0.14,-0.125,-0.111,-0.098,-0.085,-0.073,-0.062,-0.051,-0.042,-0.033,-0.026,-0.019,-0.013,-0.009,-0.005,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.013,-0.029,-0.05,-0.08,-0.11,-0.14,-0.18,-0.23,-0.27,-0.32,-0.37,-0.43,-0.48,-0.54,-0.6,-0.65,-0.71,-0.77,-0.83,-0.89,-0.95,-1,-1.06,-1.11,-1.16,-1.21,-1.25,-1.3,-1.34,-1.37,-1.4,-1.43,-1.46,-1.475,-1.489,-1.497,-1.5,-1.499,-1.498,-1.495,-1.491,-1.487,-1.481,-1.474,-1.467,-1.458,-1.449,-1.438,-1.427,-1.415,-1.402,-1.389,-1.375,-1.36,-1.344,-1.328,-1.311,-1.293,-1.275,-1.256,-1.237,-1.22,-1.197,-1.18,-1.15,-1.13,-1.11,-1.09,-1.07,-1.04,-1.02,-1,-0.97,-0.95,-0.92,-0.9,-0.87,-0.85,-0.82,-0.8,-0.77,-0.75,-0.73,-0.7,-0.68,-0.65,-0.63,-0.6,-0.58,-0.55,-0.53,-0.5,-0.48,-0.46,-0.43,-0.41,-0.39,-0.37,-0.35,-0.32,-0.3,-0.283,-0.26,-0.244,-0.225,-0.207,-0.189,-0.172,-0.156,-0.14,-0.125,-0.111,-0.098,-0.085,-0.073,-0.062,-0.051,-0.042,-0.033,-0.026,-0.019,-0.013,-0.009,-0.005,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.995,0.982,0.96,0.93,0.9,0.86,0.81,0.75,0.7,0.64,0.57,0.5,0.43,0.36,0.28,0.21,0.13,0.05,-0.03,-0.11,-0.19,-0.26,-0.34,-0.41,-0.48,-0.55,-0.61,-0.67,-0.73,-0.78,-0.83,-0.87,-0.91,-0.94,-0.97,-0.985,-0.996,-1,-0.97,-0.9,-0.79,-0.65,-0.48,-0.29,-0.1,0.1,0.29,0.48,0.65,0.79,0.9,0.97,1,0.93,0.79,0.61,0.41,0.22,0.05,-0.09,-0.18,-0.26,-0.31,-0.35,-0.39,-0.42,-0.45,-0.48,-0.52,-0.57,-0.62,-0.66,-0.7,-0.74,-0.78,-0.81,-0.84,-0.87,-0.9,-0.92,-0.938,-0.955,-0.969,-0.98,-0.989,-0.995,-0.999,-1,-0.97,-0.88,-0.76,-0.61,-0.45,-0.29,-0.15,-0.02,0.08,0.15,0.22,0.28,0.34,0.4,0.46,0.51,0.55,0.6,0.64,0.68,0.72,0.75,0.78,0.81,0.84,0.86,0.88,0.902,0.919,0.935,0.948,0.96,0.97,0.979,0.985,0.991,0.995,0.998,0.999,1,0.98,0.93,0.85,0.75,0.65,0.56,0.47,0.39,0.33,0.28,0.24,0.2,0.17,0.15,0.129,0.11,0.091,0.072,0.05,0.03,0,-0.04,-0.09,-0.13,-0.18,-0.23,-0.28,-0.34,-0.4,-0.49,-0.59,-0.69,-0.76,-0.82,-0.86,-0.87,-0.869,-0.85,-0.8,-0.71,-0.57,-0.33,-0.11,0.1,0.29,0.47,0.62,0.75,0.86,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.009,0.02,0.034,0.051,0.07,0.1,0.12,0.15,0.18,0.21,0.25,0.28,0.32,0.36,0.4,0.44,0.48,0.51,0.55,0.59,0.63,0.67,0.7,0.74,0.77,0.81,0.84,0.86,0.89,0.91,0.94,0.955,0.971,0.983,0.992,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.997,0.987,0.972,0.951,0.93,0.9,0.86,0.82,0.78,0.74,0.7,0.65,0.6,0.55,0.5,0.45,0.4,0.35,0.3,0.26,0.22,0.18,0.14,0.1,0.07,0.05,0.028,0.013,0.003,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0.04,0.11,0.21,0.31,0.4,0.47,0.52,0.54,0.539,0.535,0.531,0.526,0.523,0.521,0.52,0.534,0.56,0.58,0.594,0.6,0.581,0.53,0.47,0.39,0.31,0.23,0.16,0.1,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_CHEEK_01=0
|
||||||
|
|
||||||
|
PARAM_CHEEK_02=0
|
||||||
|
|
||||||
|
PARAM_CHEEK_03=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.009,0.02,0.034,0.051,0.07,0.1,0.12,0.15,0.18,0.21,0.25,0.28,0.32,0.36,0.4,0.44,0.48,0.51,0.55,0.59,0.63,0.67,0.7,0.74,0.77,0.81,0.84,0.86,0.89,0.91,0.94,0.955,0.971,0.983,0.992,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.987,0.972,0.952,0.93,0.9,0.87,0.83,0.79,0.75,0.71,0.67,0.62,0.58,0.53,0.48,0.44,0.39,0.35,0.3,0.26,0.22,0.18,0.15,0.12,0.09,0.06,0.04,0.023,0.011,0.003,0
|
||||||
|
|
||||||
|
PARAM_CHEEK_04=0
|
||||||
|
|
||||||
|
PARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.2,-0.34,-0.51,-0.72,-0.96,-1.23,-1.51,-1.82,-2.15,-2.49,-2.85,-3.21,-3.59,-3.97,-4.36,-4.75,-5.15,-5.54,-5.93,-6.3,-6.68,-7.04,-7.39,-7.73,-8.05,-8.36,-8.65,-8.91,-9.15,-9.36,-9.55,-9.71,-9.83,-9.92,-9.98,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.998,-9.996,-9.993,-9.988,-9.981,-9.972,-9.959,-9.944,-9.926,-9.9,-9.88,-9.85,-9.81,-9.77,-9.73,-9.68,-9.62,-9.55,-9.48,-9.41,-9.32,-9.23,-9.13,-9.02,-8.9,-8.78,-8.64,-8.5,-8.34,-8.18,-8,-7.77,-7.48,-7.14,-6.76,-6.34,-5.9,-5.44,-4.97,-4.49,-4.02,-3.54,-3.07,-2.62,-2.18,-1.78,-1.4,-1.06,-0.76,-0.5,-0.29,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.2,-0.34,-0.51,-0.72,-0.96,-1.23,-1.51,-1.82,-2.15,-2.49,-2.85,-3.21,-3.59,-3.97,-4.36,-4.75,-5.15,-5.54,-5.93,-6.3,-6.68,-7.04,-7.39,-7.73,-8.05,-8.36,-8.65,-8.91,-9.15,-9.36,-9.55,-9.71,-9.83,-9.92,-9.98,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.999,-9.998,-9.997,-9.995,-9.992,-9.989,-9.985,-9.981,-9.976,-9.971,-9.964,-9.957,-9.95,-9.941,-9.932,-9.922,-9.911,-9.899,-9.887,-9.873,-9.859,-9.843,-9.827,-9.809,-9.791,-9.772,-9.75,-9.73,-9.71,-9.68,-9.66,-9.63,-9.6,-9.57,-9.54,-9.51,-9.48,-9.45,-9.41,-9.37,-9.34,-9.3,-9.25,-9.21,-9.17,-9.12,-9.07,-9.02,-8.97,-8.92,-8.87,-8.81,-8.75,-8.7,-8.63,-8.57,-8.51,-8.44,-8.37,-8.3,-8.23,-8.15,-8.08,-8,-7.87,-7.66,-7.38,-7.05,-6.66,-6.24,-5.79,-5.32,-4.82,-4.33,-3.83,-3.34,-2.86,-2.39,-1.95,-1.55,-1.17,-0.84,-0.55,-0.32,-0.14,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BODY_ANGLE_Z=0,0.04,0.17,0.37,0.63,0.93,1.28,1.66,2.05,2.45,2.85,3.24,3.6,3.94,4.24,4.5,4.71,4.87,4.97,5,4.97,4.87,4.71,4.49,4.23,3.92,3.56,3.16,2.73,2.27,1.78,1.26,0.73,0.18,-0.38,-0.96,-1.55,-2.13,-2.72,-3.31,-3.89,-4.46,-5.02,-5.56,-6.09,-6.6,-7.08,-7.54,-7.97,-8.36,-8.72,-9.04,-9.32,-9.56,-9.75,-9.89,-9.97,-10,-9.992,-9.97,-9.93,-9.88,-9.82,-9.75,-9.67,-9.58,-9.48,-9.39,-9.28,-9.17,-9.07,-8.96,-8.85,-8.75,-8.64,-8.55,-8.45,-8.37,-8.29,-8.22,-8.15,-8.1,-8.06,-8.03,-8.006,-8,-8.005,-8.021,-8.05,-8.08,-8.12,-8.17,-8.23,-8.3,-8.36,-8.44,-8.52,-8.6,-8.68,-8.77,-8.86,-8.94,-9.03,-9.12,-9.21,-9.29,-9.38,-9.46,-9.53,-9.61,-9.68,-9.74,-9.8,-9.85,-9.89,-9.93,-9.96,-9.98,-9.995,-10,-9.9,-9.63,-9.23,-8.73,-8.17,-7.57,-6.99,-6.45,-5.96,-5.56,-5.25,-5.07,-5,-5.06,-5.24,-5.52,-5.88,-6.3,-6.76,-7.25,-7.75,-8.24,-8.7,-9.12,-9.48,-9.76,-9.94,-10,-10,-10,-10,-9.994,-9.982,-9.961,-9.93,-9.89,-9.84,-9.77,-9.69,-9.59,-9.47,-9.33,-9.17,-8.99,-8.78,-8.55,-8.29,-8,-7.55,-6.96,-6.24,-5.45,-4.61,-3.73,-2.82,-1.94,-1.06,-0.25,0.52,1.21,1.82,2.31,2.68,2.92,3,2.94,2.78,2.53,2.22,1.87,1.5,1.13,0.78,0.47,0.22,0.06,0,0.06,0.21,0.42,0.69,0.99,1.3,1.62,1.93,2.21,2.47,2.68,2.85,2.96,3,2.998,2.991,2.98,2.963,2.94,2.92,2.88,2.85,2.8,2.75,2.7,2.64,2.57,2.5,2.42,2.34,2.25,2.16,2.06,1.95,1.84,1.72,1.58,1.44,1.31,1.19,1.07,0.96,0.86,0.76,0.66,0.57,0.49,0.42,0.35,0.28,0.22,0.17,0.13,0.09,0.06,0.03,0.014,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BREATH=0
|
||||||
|
|
||||||
|
PARAM_UPBACK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.998,-0.996,-0.994,-0.992,-0.988,-0.984,-0.98,-0.974,-0.968,-0.961,-0.953,-0.945,-0.935,-0.925,-0.914,-0.901,-0.888,-0.874,-0.858,-0.841,-0.823,-0.804,-0.78,-0.76,-0.74,-0.72,-0.69,-0.66,-0.63,-0.6,-0.57,-0.54,-0.5,-0.47,-0.43,-0.39,-0.36,-0.32,-0.29,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.07,-0.055,-0.039,-0.025,-0.014,-0.007,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BUST_Y=0
|
||||||
|
|
||||||
|
PARAM_TIE=0
|
||||||
|
|
||||||
|
PARAM_SKIRT=0
|
||||||
|
|
||||||
|
PARAM_HAIR_FRONT=0
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,-0.38,-1.45,-3.13,-5.26,-7.8,-10.58,-13.51,-16.49,-19.42,-22.2,-24.74,-26.87,-28.55,-29.62,-30,-29.86,-29.44,-28.78,-27.87,-26.76,-25.45,-23.96,-22.34,-20.58,-18.7,-16.74,-14.73,-12.64,-10.54,-8.4,-6.27,-4.16,-2.06,0,2.26,4.42,6.5,8.45,10.29,12.04,13.69,15.25,16.69,18.07,19.36,20.54,21.65,22.67,23.62,24.48,25.27,25.99,26.64,27.23,27.75,28.21,28.61,28.96,29.25,29.49,29.68,29.82,29.92,29.98,30,29.81,29.24,28.32,27.09,25.56,23.78,21.75,19.51,17.13,14.55,11.84,9.06,6.2,3.29,0.35,-2.55,-5.42,-8.25,-11.02,-13.68,-16.2,-18.57,-20.79,-22.82,-24.62,-26.2,-27.52,-28.58,-29.36,-29.84,-30,-29.89,-29.54,-29,-28.27,-27.34,-26.25,-25.01,-23.64,-22.13,-20.49,-18.75,-16.94,-15.01,-13.05,-11.02,-8.93,-6.8,-4.64,-2.46,-0.26,1.89,4.08,6.2,8.34,10.4,12.4,14.39,16.27,18.07,19.79,21.4,22.91,24.3,25.54,26.67,27.65,28.47,29.13,29.6,29.9,30,29.97,29.87,29.71,29.5,29.22,28.9,28.52,28.1,27.62,27.11,26.56,25.96,25.33,24.67,23.97,23.24,22.49,21.71,20.92,20.09,19.25,18.39,17.51,16.63,15.75,14.84,13.93,13.03,12.11,11.21,10.29,9.4,8.49,7.61,6.73,5.86,5.01,4.17,3.36,2.57,1.79,1.05,0.33,-0.37,-1.03,-1.66,-2.25,-2.81,-3.33,-3.82,-4.25,-4.64,-4.99,-5.29,-5.54,-5.74,-5.88,-5.97,-6,-5.981,-5.92,-5.83,-5.71,-5.55,-5.37,-5.17,-4.95,-4.71,-4.45,-4.17,-3.89,-3.59,-3.3,-3,-2.7,-2.41,-2.11,-1.83,-1.55,-1.29,-1.05,-0.83,-0.63,-0.45,-0.29,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_FORM=0
|
||||||
|
|
||||||
|
PARAM_TEAR=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.003,-0.007,-0.012,-0.018,-0.026,-0.034,-0.044,-0.055,-0.068,-0.081,-0.095,-0.11,-0.125,-0.142,-0.159,-0.177,-0.195,-0.214,-0.234,-0.25,-0.274,-0.295,-0.32,-0.337,-0.36,-0.38,-0.4,-0.42,-0.44,-0.47,-0.49,-0.51,-0.53,-0.55,-0.57,-0.59,-0.609,-0.628,-0.646,-0.664,-0.681,-0.698,-0.713,-0.728,-0.742,-0.755,-0.768,-0.779,-0.789,-0.798,-0.806,-0.814,-0.819,-0.824,-0.827,-0.829,-0.83,-0.828,-0.823,-0.815,-0.804,-0.79,-0.773,-0.754,-0.73,-0.71,-0.68,-0.65,-0.62,-0.59,-0.55,-0.52,-0.48,-0.44,-0.4,-0.36,-0.31,-0.27,-0.23,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.1,0.15,0.2,0.24,0.29,0.34,0.38,0.43,0.47,0.51,0.55,0.59,0.63,0.67,0.71,0.74,0.78,0.81,0.84,0.86,0.89,0.91,0.93,0.948,0.964,0.977,0.987,0.994,0.999,1,0.999,0.994,0.987,0.977,0.965,0.95,0.934,0.915,0.894,0.87,0.85,0.82,0.79,0.77,0.74,0.71,0.68,0.64,0.61,0.58,0.54,0.51,0.48,0.44,0.41,0.38,0.35,0.31,0.28,0.25,0.22,0.2,0.17,0.14,0.12,0.1,0.08,0.057,0.04,0.024,0.011,0,-0.008,-0.015,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.019,-0.019,-0.019,-0.019,-0.018,-0.018,-0.017,-0.017,-0.016,-0.016,-0.015,-0.015,-0.014,-0.014,-0.013,-0.012,-0.012,-0.011,-0.011,-0.01,-0.009,-0.009,-0.008,-0.008,-0.007,-0.006,-0.006,-0.005,-0.005,-0.004,-0.004,-0.003,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.502,-0.504,-0.507,-0.511,-0.515,-0.521,-0.527,-0.533,-0.541,-0.549,-0.557,-0.566,-0.576,-0.585,-0.596,-0.607,-0.618,-0.629,-0.641,-0.653,-0.665,-0.678,-0.69,-0.703,-0.716,-0.729,-0.742,-0.755,-0.768,-0.781,-0.794,-0.806,-0.819,-0.831,-0.843,-0.855,-0.867,-0.878,-0.889,-0.9,-0.91,-0.92,-0.93,-0.939,-0.947,-0.955,-0.962,-0.969,-0.975,-0.981,-0.986,-0.99,-0.994,-0.996,-0.998,-1,-1,-0.998,-0.993,-0.984,-0.972,-0.957,-0.939,-0.92,-0.89,-0.87,-0.84,-0.81,-0.77,-0.74,-0.7,-0.66,-0.62,-0.58,-0.54,-0.49,-0.44,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-0.1,-0.05,0,0.06,0.11,0.16,0.21,0.26,0.31,0.35,0.4,0.45,0.49,0.53,0.58,0.62,0.66,0.69,0.73,0.76,0.79,0.82,0.85,0.87,0.9,0.914,0.931,0.945,0.956,0.964,0.968,0.97,0.97,0.97,0.97,0.969,0.969,0.968,0.967,0.966,0.965,0.964,0.962,0.96,0.957,0.954,0.951,0.948,0.944,0.939,0.934,0.929,0.923,0.917,0.91,0.902,0.894,0.885,0.876,0.866,0.856,0.844,0.833,0.82,0.806,0.792,0.778,0.762,0.745,0.728,0.71,0.691,0.672,0.651,0.63,0.61,0.58,0.56,0.53,0.51,0.48,0.45,0.43,0.4,0.37,0.34,0.31,0.28,0.25,0.22,0.19,0.16,0.13,0.1,0.07,0.04,0.02,-0.01,-0.04,-0.07,-0.1,-0.12,-0.15,-0.18,-0.2,-0.23,-0.25,-0.27,-0.3,-0.32,-0.337,-0.356,-0.375,-0.392,-0.408,-0.423,-0.437,-0.45,-0.461,-0.471,-0.48,-0.487,-0.493,-0.497,-0.499,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=1
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1,0.995,0.979,0.95,0.92,0.88,0.83,0.77,0.7,0.64,0.56,0.48,0.4,0.32,0.23,0.14,0.06,-0.03,-0.12,-0.21,-0.29,-0.38,-0.46,-0.53,-0.61,-0.68,-0.74,-0.8,-0.85,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.996,-0.985,-0.966,-0.94,-0.91,-0.87,-0.83,-0.78,-0.73,-0.67,-0.61,-0.55,-0.48,-0.41,-0.34,-0.27,-0.19,-0.12,-0.04,0.04,0.12,0.19,0.27,0.34,0.41,0.48,0.55,0.61,0.67,0.73,0.78,0.83,0.87,0.91,0.94,0.97,0.985,0.996,1,1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0
|
||||||
|
|
||||||
|
PARAM_CHEEK_01=0
|
||||||
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.38,-1.45,-3.1,-5.23,-7.69,-10.41,-13.2,-16.05,-18.83,-21.48,-23.86,-25.95,-27.67,-28.93,-29.73,-30,-29.24,-27.11,-23.75,-19.48,-14.39,-8.85,-2.98,2.98,8.85,14.39,19.48,23.75,27.11,29.24,30,29.4,27.79,25.38,22.35,19,15.44,11.94,8.68,5.78,3.35,1.53,0.39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,-0.2,-0.76,-1.66,-2.85,-4.27,-5.89,-7.73,-9.62,-11.64,-13.71,-15.79,-17.8,-19.8,-21.68,-23.45,-25.05,-26.47,-27.7,-28.67,-29.4,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.9,-29.62,-29.16,-28.54,-27.77,-26.87,-25.86,-24.74,-23.53,-22.24,-20.86,-19.44,-17.97,-16.49,-15,-13.51,-12.03,-10.56,-9.14,-7.76,-6.47,-5.26,-4.14,-3.13,-2.23,-1.46,-0.84,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_TEAR=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,0.97,0.9,0.79,0.65,0.48,0.29,0.1,-0.1,-0.29,-0.48,-0.65,-0.79,-0.9,-0.97,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=-0.5,-0.49,-0.46,-0.42,-0.36,-0.29,-0.21,-0.11,-0.02,0.08,0.19,0.29,0.39,0.49,0.58,0.67,0.75,0.82,0.88,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.995,0.981,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.61,0.54,0.47,0.4,0.32,0.25,0.18,0.1,0.03,-0.04,-0.11,-0.18,-0.24,-0.29,-0.34,-0.39,-0.43,-0.46,-0.48,-0.495,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_FORM=1
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0,-0.001,-0.003,-0.007,-0.011,-0.017,-0.024,-0.031,-0.038,-0.047,-0.055,-0.063,-0.071,-0.079,-0.087,-0.094,-0.1,-0.106,-0.111,-0.115,-0.118,-0.119,-0.12,-0.12,-0.12,-0.119,-0.119,-0.118,-0.118,-0.117,-0.116,-0.115,-0.114,-0.113,-0.111,-0.11,-0.108,-0.107,-0.105,-0.103,-0.102,-0.1,-0.098,-0.096,-0.094,-0.092,-0.09,-0.087,-0.085,-0.083,-0.081,-0.078,-0.076,-0.074,-0.071,-0.069,-0.066,-0.064,-0.061,-0.059,-0.057,-0.054,-0.052,-0.049,-0.047,-0.045,-0.042,-0.04,-0.038,-0.036,-0.033,-0.031,-0.029,-0.027,-0.025,-0.023,-0.021,-0.019,-0.017,-0.016,-0.014,-0.013,-0.011,-0.01,-0.008,-0.007,-0.006,-0.005,-0.004,-0.003,-0.002,-0.002,-0.001,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0,-0.001,-0.003,-0.007,-0.011,-0.017,-0.024,-0.031,-0.038,-0.047,-0.055,-0.063,-0.071,-0.079,-0.087,-0.094,-0.1,-0.106,-0.111,-0.115,-0.118,-0.119,-0.12,-0.12,-0.12,-0.119,-0.119,-0.118,-0.118,-0.117,-0.116,-0.115,-0.114,-0.113,-0.111,-0.11,-0.108,-0.107,-0.105,-0.103,-0.102,-0.1,-0.098,-0.096,-0.094,-0.092,-0.09,-0.087,-0.085,-0.083,-0.081,-0.078,-0.076,-0.074,-0.071,-0.069,-0.066,-0.064,-0.061,-0.059,-0.057,-0.054,-0.052,-0.049,-0.047,-0.045,-0.042,-0.04,-0.038,-0.036,-0.033,-0.031,-0.029,-0.027,-0.025,-0.023,-0.021,-0.019,-0.017,-0.016,-0.014,-0.013,-0.011,-0.01,-0.008,-0.007,-0.006,-0.005,-0.004,-0.003,-0.002,-0.002,-0.001,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0,-0.005,-0.02,-0.04,-0.07,-0.11,-0.15,-0.2,-0.25,-0.3,-0.36,-0.41,-0.46,-0.51,-0.56,-0.61,-0.65,-0.69,-0.72,-0.75,-0.764,-0.776,-0.78,-0.78,-0.778,-0.776,-0.773,-0.769,-0.765,-0.759,-0.753,-0.747,-0.739,-0.732,-0.723,-0.714,-0.704,-0.694,-0.683,-0.672,-0.66,-0.648,-0.636,-0.623,-0.609,-0.596,-0.582,-0.568,-0.553,-0.539,-0.524,-0.509,-0.493,-0.478,-0.463,-0.447,-0.431,-0.416,-0.4,-0.384,-0.368,-0.353,-0.337,-0.321,-0.306,-0.291,-0.276,-0.261,-0.246,-0.231,-0.217,-0.203,-0.189,-0.176,-0.162,-0.149,-0.137,-0.125,-0.113,-0.102,-0.091,-0.081,-0.071,-0.062,-0.054,-0.045,-0.038,-0.031,-0.025,-0.019,-0.014,-0.01,-0.006,-0.004,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
31
Mabbs/README.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# 关于Mayx
|
||||||
|
|
||||||
|
| Item | Value |
|
||||||
|
| - | - |
|
||||||
|
| 常用名 | Mayx |
|
||||||
|
| 血型 | B |
|
||||||
|
| 星座 | 狮子座 |
|
||||||
|
| 爱好 | 编程、ACGN |
|
||||||
|
| 擅长 | 编写Python、JS、Bash等脚本 |
|
||||||
|
|
||||||
|
## 卡片
|
||||||
|
|
||||||
|
[](https://mabbs.github.io/)
|
||||||
|
|
||||||
|
[](https://osu.ppy.sh/users/16168394)
|
||||||
|
|
||||||
|
[](https://www.worldcommunitygrid.org/stat/viewMemberInfo.do?userName=Mayx)
|
||||||
|
|
||||||
|
[](https://github.com/Mabbs)
|
||||||
|
|
||||||
|
## 联系方式
|
||||||
|
|
||||||
|
Wechat&[Telegram](https://t.me/unmayx): unmayx
|
||||||
|
|
||||||
|
Phone Number: 15209678869
|
||||||
|
|
||||||
|
Email: <i@mayx.eu.org>
|
||||||
|
|
||||||
|
<a rel="me" href="https://mastodon.social/@mayx">Mastodon</a>
|
||||||
|
|
||||||
|
[About.me](https://about.me/mayx)
|
||||||
BIN
MayxBlog.tgz
Normal file
53
README.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
# Mayx的博客
|
||||||
|
Mayx's Home Page
|
||||||
|
Powered by [Jekyll](https://github.com/jekyll/jekyll)
|
||||||
|

|
||||||
|
|
||||||
|
[](https://github.com/Mabbs/mabbs.github.io/actions/workflows/pages/pages-build-deployment) [](https://github.com/jekyll/jekyll)
|
||||||
|
[](https://mabbs.github.io)
|
||||||
|
[](https://github.com/Mabbs/mabbs.github.io)
|
||||||
|
[](https://github.com/Mabbs/mabbs.github.io/commits/master/)
|
||||||
|
[](https://github.com/Mabbs/mabbs.github.io/issues?q=is%3Aissue%20state%3Aopen%20label%3AGitalk)
|
||||||
|
[](https://gitlab.com/mayx/mayx.gitlab.io/-/pipelines) [](https://app.netlify.com/sites/mayx/deploys) [](https://deepwiki.com/Mabbs/mabbs.github.io)
|
||||||
|
[](https://github.com/Mabbs/mabbs.github.io/stargazers)
|
||||||
|
[](https://github.com/Mabbs/mabbs.github.io/forks)
|
||||||
|
[](https://gitlab.com/mayx/mayx.gitlab.io/-/starrers)
|
||||||
|
[](https://app.follow.is/share/feeds/41798923170845763)
|
||||||
|
|
||||||
|
## 使用的开源项目
|
||||||
|
[Jekyll](https://github.com/jekyll/jekyll)
|
||||||
|
[jQuery](https://github.com/jquery/jquery)
|
||||||
|
[gitalk](https://github.com/gitalk/gitalk)
|
||||||
|
[minimal](https://github.com/pages-themes/minimal)
|
||||||
|
[jekyll-toc](https://github.com/allejo/jekyll-toc)
|
||||||
|
[Live2dHistoire](https://github.com/eeg1412/Live2dHistoire)
|
||||||
|
[Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
||||||
|
[jekyll-anchor-headings](https://github.com/allejo/jekyll-anchor-headings)
|
||||||
|
|
||||||
|
## 使用的网络资源
|
||||||
|
[Github](https://github.com/) | 包含:
|
||||||
|
- Issue
|
||||||
|
- Pages
|
||||||
|
- Git
|
||||||
|
|
||||||
|
[Cloudflare](https://www.cloudflare.com/) | 包含:
|
||||||
|
- CDN、规则以及缓存
|
||||||
|
- Workers、D1 SQL 数据库、Vectorize 数据库、AI
|
||||||
|
|
||||||
|
[GitLab](https://gitlab.com/)
|
||||||
|
[网易云音乐](https://music.163.com/)
|
||||||
|
[CDNJS](https://cdnjs.com/)
|
||||||
|
[jsDelivr](https://www.jsdelivr.com/)
|
||||||
|
……
|
||||||
|
|
||||||
|
## 版权声明
|
||||||
|
未经作者同意,请勿转载
|
||||||
|
若需转载,请联系作者(主要希望找人聊天~)
|
||||||
|
本站转载的文章如无特别说明,均按原文章的协议执行
|
||||||
|
|
||||||
|
## 打赏/赞助 Mayx
|
||||||
|

|
||||||
24
_config.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
theme: jekyll-theme-minimal
|
||||||
|
title: Mayx的博客
|
||||||
|
logo: https://avatars0.githubusercontent.com/u/17966333
|
||||||
|
lang: zh-CN
|
||||||
|
author: mayx
|
||||||
|
description: Mayx's Home Page
|
||||||
|
timezone: Asia/Shanghai
|
||||||
|
excerpt_separator: <!--more-->
|
||||||
|
paginate: 7
|
||||||
|
plugins:
|
||||||
|
- jekyll-sitemap
|
||||||
|
- jekyll-feed
|
||||||
|
- jekyll-include-cache
|
||||||
|
feed:
|
||||||
|
path: atom.xml
|
||||||
|
webmaster_verifications:
|
||||||
|
google: huTYdEesm8NaFymixMNqflyCp6Jfvd615j5Wq1i2PHc
|
||||||
|
yandex: fc0e535abed800be
|
||||||
|
bing: 0ADFCE64B3557DC4DC5F2DC224C5FDDD
|
||||||
|
social:
|
||||||
|
name: Mayx
|
||||||
|
links:
|
||||||
|
- https://github.com/Mabbs
|
||||||
|
google_analytics: UA-137710294-1
|
||||||
177
_data/ai-cache.json
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
{
|
||||||
|
"/2024/06/16/hackintosh.html": "这篇文章讲述了作者尝试安装Hackintosh(即在非Mac硬件上运行macOS的体验)。起始时因为对Mac(尤其是基于Intel架构的)性价比、硬件差异和性能的质疑,使得作者并未尝试过。但随着ARM架构Mac的出现,他们决定安装黑苹果进行尝试。尽管安装过程并不复杂,主要是根据硬件自定义EFI,但对于无线网络和一些Apple芯片优化软件支持存在限制。尽管体验与MacBook相似,作者认为黑苹果在功能上与Linux接近,性能上不如Mac notebo挠在续航上的优势明显。总体来说,作者认为黑苹果的吸引力有限,主要是节省了一部分成本,而Mac的独家体验和续航无法替代。",
|
||||||
|
"/2024/05/19/bt-ops.html": "这篇文章主要讲述了作者在测试不同运维面板(如1Panel、小皮面板和宝塔面板)的过程中,对宝塔面板的使用体验,特别是对其Python代码实现、功能评价和价格的质疑。作者认为宝塔面板有一些独特功能如系统加固、防入侵、文件监控等,虽然代码是开源且部分易于理解,但付费功能定价不合理,如价格高昂的服务器网络加速功能其实无需付费。此外,作者还指出一些功能如防篡改可能存在问题,而一些基础功能实则简单易实现。总的来说,作者认为宝塔面板虽然有可学习之处,但价格与其提供的服务不成正比。",
|
||||||
|
"/2024/04/06/old-pc.html": "这篇文章是关于作者探索如何重新利用几台废旧电脑的体验,这些电脑尽管性能较差,但作者并未因此淘汰它们。他们将电脑改装为Linux系统进行测试,展示了四台电脑的配置和基础使用情况。尽管第一台Intel Pentium E5300的电脑在安装Ubuntu时遇到问题,但作者仍强调性能问题不大,相比于廉价的硬件如树莓派,这些旧电脑仍有可用性。文章指出,尽管老机器可能存在一些安装或兼容性问题,但并不意味着它们就该被淘汰。",
|
||||||
|
"/2024/03/16/ssl-pinning.html": "这篇文章讲述了使用Python的requests库实现类似“SSL Pinning”技术的过程。作者发现直接用requests库操作请求时,获取证书的常见方法不可行,于是通过requests.packages.urllib3的HTTPSConnection连接并修改其connect方法,实现了在发起GET请求时获取服务器的证书,并计算其SHA256指纹。作者提供了一个函数`verify_cert_request`,用于验证网站证书并可作为防抓包策略。文章最后提到,虽然Python作为解释型语言,其代码可被分析,但通过修改依赖库或加密处理可以提高保护程度,防止多数抓包行为。",
|
||||||
|
"/2024/02/24/luckfox.html": "这篇文章分享了作者购买并体验Luckfox Pico Plus开发板的过程。虽然这款开发板体积小巧,约一食指大小,但内存和存储较低,选择了预装Alpine Linux系统作为解决方案。安装过程通过树莓派完成,利用其GPIO接口。作者发现该板子性能足以运行Python和Go程序,可替代部分树莓派的任务,如定时任务和QQ机器人,但内网穿透时内存紧张。作者认为Luckfox Pico Plus以其小巧的外形和不错的性价比,相比树莓派在开发板用途上更合适,尽管树莓派的定位不清晰。",
|
||||||
|
"/2024/02/03/1panel.html": "这篇文章讲述了作者在离线环境下安装1Panel的过程。尽管1Panel官方不支持离线安装,但通过社区找到了离线安装的方法。作者通过离线安装后,遇到的问题包括应用商店空、应用文件路径错误、PHP扩展的下载问题等。通过调整数据库和容器设置,作者最终解决了这些问题,实现了Nginx、MySQL和PHP的离线安装和使用,强调了使用Go编写的程序(如Docker和1Panel)在无网络环境下的便捷性。",
|
||||||
|
"/2024/01/20/renpy.html": "这篇文章讲述了在macOS上玩基于Ren'Py的视觉小说时遇到的问题及解决方案。主要问题包括Mac OS的验证限制、不同版本Ren'Py引擎的兼容性、使用RenPyViewer的局限性以及签名和权限问题。解决方法包括使用iOS版或Intel版RenPyViewer、通过终端运行.sh文件、修改.app权限和文件结构、以及处理文件名大小写差异。最后的建议是优先使用游戏自带的.app文件并进行适当的权限设置,或者根据所用硬件选择合适的工具。",
|
||||||
|
"/2024/01/01/summary.html": "这篇文章的作者回顾了2023年的生活,主要亮点包括顺利毕业、找到稳定的工作和抽到UP角色带来的好状态。然而,工作压力不算大但作者的生活习惯不佳,晚上沉迷于游戏导致睡眠不足,进而影响了如osu!mania的游戏表现和个人健康。作者计划在经济上达到自给自足后退休,但担心自己无法照顾好自己,生活方式可能与目前的965工作模式相似。AI是2023年印象深刻的话题,但对作者影响不大。未来的目标是稳定工作和休闲,对未知的全球事件有所担忧但也保持乐观。总的来说,作者认为过去一年过得尚可,但对未来难以预测,只能走一步看一步。",
|
||||||
|
"/2023/12/24/android.html": "这篇文章介绍了如何在Linux容器中使用Waydroid和redroid两种方法来运行Android系统,虽然Waydroid性能较强,但存在依赖于Wayland且不支持ARMT架构程序的问题,需要额外安装工具。redroid支持多实例和不同安卓版本,但遇到了ARM兼容库的问题,特别是对Intel CPU支持不足。作者认为由于真机运行和虚拟机在性能上已经足够,且Linux用户群相对较小,所以容器内运行Android的需求较少。",
|
||||||
|
"/2023/12/10/openfyde.html": "这篇文章分享了作者将树莓派4B安装和使用openFyde的体验。作者出发点是寻找适合普通用户而非专业硬件爱好者的系统,因此排除了服务器版和部分GNU/Linux发行版。在选择ChromeOS或其本土化版本FydeOS时,由于官方不支持树莓派,作者选择了openFyde,尽管安装过程复杂(需要先格式化TF卡并刷入镜像),且视频播放受限于硬件只支持H264解码。有趣的是,虽然Linux子系统表现尚可,但Android子系统存在交互设计问题(如无滚轮、复制粘贴不便等)。尽管性能有限,尤其是视频播放不流畅,但openFyde以其简洁、易于安装和对普通用户相对友好的界面,被作者认为是让树莓派更适合普通用户的选择。",
|
||||||
|
"/2023/10/21/game.html": "这篇文章讲述了在MacBook上玩游戏的各种方式:1. 原生游戏,例如专为Mac设计的应用和开源游戏;2. iOS游戏,通过Decrypt IPA Store下载并在Mac上使用特定软件运行;3. 利用Rosetta 2运行x86游戏,比如通过Steam和Epic Games Launcher;4. 基于脚本的Galgame游戏,如使用工具如XP3Player、ONSPlayer或Ren'Py;5. 在网页上运行的游戏,如RPG Maker MV;6. 通过Wine或者其他基于Wine的工具运行Windows游戏,如Game Porting Toolkit和Whisky;7. 虚拟机(不推荐),如UTM;8. 云游戏服务,依赖网络和服务器性能。作者强调了MacBook虽然不是专门设计用于游戏,但有多种方法可以让用户在上面玩游戏。",
|
||||||
|
"/2023/09/24/rpi-ubuntu.html": "这篇文章介绍了作者在树莓派4B上安装Ubuntu的经历。一开始尝试安装Windows 11并使用ESXi-Arm Fling遭遇问题,如内存卡浪费和存储限制。由于对Windows的不满意,作者决定安装Ubuntu,过程中遇到了登录密码设置的困扰,软件提示不明确。尽管如此,最终成功安装了Ubuntu并编译并运行了PiFmAdv项目,但初始遇到编译问题。作者还尝试了通过QEMU-KVM在树莓派上跑Windows虚拟机,对比了与裸机的性能,发现虚拟机表现不佳。此外,虽然尝试让树莓派运行x86程序(如postjson工具),但由于性能受限,效果并不理想。总结全文,作者表示树莓派除了FM电台功能,其他操作在普通电脑上也能完成,质疑购买它的意义,但也提到挖掘其潜力的过程满足了自己的探索欲望。",
|
||||||
|
"/2023/09/06/satellite.html": "这篇文章主要讨论了卫星通信的常见应用,如GPS导航、卫星电视、业余无线电通信、卫星电话(如华为Mate 60 Pro)和星链网络。作者强调了卫星通信的基本原理,即通过无线电波与远距离的卫星进行单向或多向通信。文章还提到了华为卫星电话的特点,如能否实现免外置天线使用和隐藏天线的设计猜测。作者认为将卫星电话功能引入智能手机可能更多是出于营销策略,实际使用场景有限,如信号覆盖和成本效益都不如常规网络。最后,作者对6G卫星网络的设想持怀疑态度,认为它不会显著改变通信速度。总体上,卫星通信虽然看起来高端,但其实技术上并不是什么难题。",
|
||||||
|
"/2023/08/01/auth.html": "这篇文章讨论了在Windows环境下,让Python脚本接收OAuth2.0授权码Code的几种方法。作者尝试了以下几种方式:\n\n1. **URI Scheme**: 通过注册伪协议(如mayx://)并在Python脚本中解析回调URL来获取Code,但这种方法可能被杀毒软件阻拦,且不是所有平台都支持。\n\n2. **HTTP服务监听**: 使用Flask创建一个简单的web服务来接收Code,虽然简单但可能占用过多资源,且已被弃用。\n\n3. **Socket实现**: 用socket进行TCP连接来处理请求,但初次访问时有问题,且代码复杂。\n\n4. **http.server模块**: 使用Python内置的HTTP服务器模块实现了基本功能,更小且稳定,但仍有程序结束前端口未释放的问题,后来通过AI得到了解决。\n\n作者在寻找最合适的方案时遇到困难,感慨了解更多信息有时也带来困扰,但最终还是AI有效地解决了问题。",
|
||||||
|
"/2023/07/09/bitmo.html": "这篇文章分享了一种新型的无人值守诈骗手法,骗子创建虚假的接码平台,并通过带有网站名、用户名和密码的诱人信息诱导用户登录。受害者登录后发现网站看似正常,提供了充值、提现等功能,但其实充值和提现需要安全密钥,且对免费账户有限制。诈骗者设计巧妙,通过转账功能一步步诱导用户,如充值、转账以及账户升级的假象,增加了被骗者的参与感。作者最终识破网站为假,怀疑其为国人开发的诈骗平台,并指出这类诈骗手法利用了人们的好奇心和财务冲动,效率高且设计逼真,可能会导致许多人受骗。",
|
||||||
|
"/2019/04/13/iwara.html": "这篇文章介绍了使用PHP编写的Iwara Viewer,一个帮助用户从Iwara平台下载视频的工具。作者主要是出于对网站Ecchi(Iwara上的一个内容区)上的R183D动画,特别是\"Observation Diary\"的兴趣。工具允许按照日期、观看数或喜好排序视频,并提供了在服务器上直接下载视频的选项,以解决Iwara防盗链的问题。然而,该工具的缺点在于没有显示观看数、作者信息,且可能受Iwara服务器限制。作者还提供了相关的演示和下载工具链接。",
|
||||||
|
"/2015/02/23/diary.html": "这篇文章记述了作者在2015年2月23日的日常经历,包括修复U盘、处理爷爷电脑的显示器问题以及手机分区的意外损害与修复。作者通过这些事件反思了技术操作的重要性,提到了对手机知识的深入了解,以及对电脑与手机未来趋势的看法。同时,他也对自己在春节期间不小心损坏手机的行为做了自我批评。",
|
||||||
|
"/2018/03/26/neko.html": "这篇文章记录了一个名为张千叶的人帮助朋友Ayaka Neko应对家人(特别是其父亲)强制带回云南老家并进行住院治疗的过程。Ayaka已成年并有精神健康问题,但她的父母没有得到她的同意,且存在暴力行为。文章描述了从报警、寻求警察帮助到联系不上Ayaka,最终发现她自杀的悲剧结局。事件引发了关于监护权、抑郁症处理和家庭沟通问题的讨论,呼吁家长尊重孩子意愿,避免类似悲剧的发生。",
|
||||||
|
"/%E6%BC%94%E8%AE%B2%E7%A8%BF/2018/06/20/Coding.html": "这篇文章是一场演讲稿,由演讲者mayx介绍了计算机编程的三个核心主题:计算机基础知识、编程基础和设计概念。演讲涉及的内容包括计算机科学的区分(CS与IT)、硬件的基本结构(冯·诺依曼架构与哈佛架构)、编程语言的发展(如低级语言与高级语言的区别,编译型语言和解释型语言如C、Python和Java的特点),以及UI设计的重要性和扁平化设计的流行。演讲旨在让听众理解编程的本质和设计原则,强调编程不仅仅是技术层面,也是表达思想和解决实际问题的工具。",
|
||||||
|
"/2018/10/20/talk.html": "这篇文章是Mayx分享其在Github Pages博客上使用评论系统的体验。作者首先提到由于博客的静态性质,选择第三方评论服务有限制, Disqus因在中国不可用而被排除。国内的选项如多说、畅言被指不稳定。在对比了Gitalk、Gitment、Valine、fcomment和utterances等几种评论系统后,作者最终选择Gitalk,原因包括Gitment停止维护、Gitalk虽需手动初始化但影响不大、以及相对较高的安全性(相比fcomment和Valine)。尽管Gitalk在IE11中的表现存在问题,但作者仍因懒惰和对已有系统的满意而坚持使用。",
|
||||||
|
"/2022/11/08/cf-acc.html": "这篇文章主要介绍了如何改善在中国使用Cloudflare服务的网站访问体验。由于中国对Cloudflare网络的某些限制,用户常会遇到速度问题。文章提供了两种方法:一是利用CloudflareSpeedTest工具检测最佳IP并修改 Hosts;二是通过第三方反代节点,这些节点可能绕过速度限制,但需注意潜在的安全风险如中间人攻击和匿名性导致的防火墙失效。对于网站站长,云flare官方的新CNAME接入方式允许绑定信用卡进行限制性接入,通过设置不重要的域名作为跳板,可灵活选择节点以优化访问速度,但需开启证书透明度监视以防止中间人攻击。作者还提到可以考虑使用DDNS脚本来自动调整IP,但缺乏实操条件。文章最后表达了对Cloudflare优化服务的肯定。",
|
||||||
|
"/2021/03/02/workers.html": "这篇文章介绍了作者尝试使用CloudFlare Workers实现的一些功能,包括自建反向代理以加快博客访问速度,搭建简单Status Page监测网站可用性,以及对Serverless云函数的玩味。作者提到虽然Workers功能完善且支持KV存储,但免费版的10万次请求限制对大流量网站并不适用。此外,作者认为Serverless更适合小公司,大公司则可能不会将其作为主要业务平台,因为存在服务中断风险。",
|
||||||
|
"/2022/12/26/i2p-ssl.html": "这篇文章讲述了作者为自己的i2p站点添加SSL证书的探索过程。虽然i2p作为一个小项目没有官方认可的SSL证书,但有一个由PurpleI2P开发团队维护的自签名CA可以用于证书签名。申请过程相对简单,但部署到网站和配置有所挑战,因为缺乏相关的教程。作者最后成功配置并实现了网站的加密访问,但他提到i2p对SSL证书的管理不太严格,仅用于娱乐性质。此外,i2p的域名注册也很随意。整个过程虽然麻烦但充满了趣味性。",
|
||||||
|
"/2022/12/12/bt-s3-comp.html": "这篇文章主要讲述了作者如何自定义宝塔面板上的亚马逊S3云存储插件,因为原插件不支持非AWS的S3服务端点,如Filebase。作者发现通过Python的boto3库可以实现自定义连接,只需要在插件的`build_auth()`方法中添加`endpoint_url`参数。作者对宝塔插件的设计和功能表示不满,认为它只支持了基本功能且依赖臃肿,但对于不会编程的小白用户来说,尽管功能有限,仍需使用。",
|
||||||
|
"/2018/11/10/email-sender.html": "这篇文章介绍了作者如何利用PHP制作了一个免费订阅的邮件日报系统。作者通过搜索并利用现成的PHP资源,如sendmail和CronTab功能,设置了自动发送邮件的工作流程。邮件包含了天气预报、笑话和新闻等内容,且制作者留有余地,如使用Travis-CI和短信提醒等功能进行扩展。最后,作者分享了创建过程中的心得和提示,欢迎读者尝试并加入邮件订阅。",
|
||||||
|
"/2023/03/12/php-async.html": "这篇文章主要探讨了PHP实现异步执行的挑战和尝试。作者在ThinkPHP项目中遇到需要立即返回数据并继续后台耗时操作的问题。以前采用的file_get_contents函数虽然解决了返回速度慢的问题,但涉及到使用危险的函数和服务器配置限制。作者对于使用消息队列、Swoole框架及popen函数等方法持保留态度,认为它们可能带来安全风险或超出项目规模。\n\n作者发现fastcgi_finish_request函数可以输出内容并结束请求,但需注意与session管理和PHP-FPM的交互。存在问题包括对Apache环境的限制、进程数量限制以及在TP框架下无法使用return。作者总结到,PHP处理多线程问题有困难,对于频繁遇到这类问题的项目,可能需要考虑使用其他语言。",
|
||||||
|
"/2023/06/30/nucleic-acid.html": "这篇文章介绍了一篇基于ThinkPHP5.1框架的核酸检测登记系统设计与开发的毕业论文。论文详细探讨了系统的需求分析、数据库设计、功能实现(如前后端架构和用户模块等),以及系统测试过程。研究目标是为新冠疫情防控提供一个便捷的在线登记平台,通过微信接入,提高效率并减少人员接触。论文强调了系统在追踪疫情、提高用户体验及信息共享方面的价值,并对比了国内外核酸检测登记系统的现状。论文由七章组成,涉及背景、技术概述、需求设计、接口与数据库设计、实现、测试以及结论和展望。",
|
||||||
|
"/2023/05/22/rpi-win.html": "这篇文章主要讲述了作者尝试在树莓派4B上安装Windows系统的过程,包括使用Windows on R工具和不同存储卡的尝试,但遇到了安装失败和性能问题,如WinPE安装不能成功、Windows性能差(尤其是读写速度和驱动缺失)、CPU占用高等。尽管Linux系统在官方支持下运行流畅,但作者认为树莓派在性能、驱动支持和视频播放等生产力方面表现不佳,更适合用作物联网开发板,而非普通电脑。文章最后对树莓派4B及后续版本的发展方向提出了疑问。",
|
||||||
|
"/2023/04/05/ai.html": "这篇文章讲述了人工智能特别是LLM(大型语言模型)领域近期的发展,以ChatGPT和相关模型如Alpaca为例。作者提到,开源社区如GitHub上的llama.cpp项目让AI技术更加亲民,即使是在资源有限的设备上也能体验到。斯坦福大学的Finetune技术使得AI模型性能提升,而成本较低的LoRA方法使得AI训练更加普及,作者还分享了自己的实践经验,如使用不同设备运行不同规模的模型。此外,作者对开源社区的AI发展持乐观态度,希望未来能在低成本情况下提高效率,但也表达了对技术被商业化和不平等竞争的担忧。",
|
||||||
|
"/2023/02/22/cron.html": "这篇文章讲述了作者在云原神签到脚本被Github Actions禁用后,选择使用Cloudflare Workers Cron触发器的原因。作者认为Workers更适合做这种简单的网络请求,因为它资源消耗较少,且不会像Actions那样遇到资源限制。作者分享了如何在Workers中编写签到脚本,包括设置headers和获取必要的参数。此外,作者建议将Cloudflare Workers用于日常签到等轻量级任务,而更适合计算密集型工作的是Github Actions。作者还提到,与云函数相比,Workers可能具有更好的轻量化和环保优势。",
|
||||||
|
"/2023/02/03/mbp.html": "这篇文章介绍了作者使用新款MacBook Pro 2022 13寸搭载Apple M2芯片后的使用体验。尽管之前对MacOS和苹果产品存有偏见,认为其性价比不高且性能曾存在问题,但M2芯片的升级让作者感到惊喜,体现在性能提升、功耗控制优良以及长续航上,使其符合云游戏与轻薄本的使用需求。文章还提到了MacOS的初次上手体验,如触控板的便利、软件兼容性(如Microsoft Remote Desktop和VSCode的使用)以及MacBook在游戏性能上的不足。作者认为MacBook适合日常工作、文档处理和轻度娱乐,续航表现强大,但与Windows电脑相比,在一些核心功能和兼容性上还有差距。",
|
||||||
|
"/2023/01/01/summary.html": "这篇文章是作者的年终总结,回顾了2022年的生活和工作,主要提及了记忆在生活中的重要性,以及这一年解决问题的文章减少可能与记忆积累减少有关。作者提到对2022年周围环境的负面看法,认为人类灭亡的风险增加,并表达了对2023年能正常活下去的期望。同时,作者分享了关于博客备份的成就,以及这套方案在反审查方面的价值。个人生活上,临近毕业,作者对未来持有相对消极的态度,仅期待见证可能发生的变化,认为自己和其他人可能都不会有显著的改善。",
|
||||||
|
"/2022/11/29/free-server.html": "这篇文章讲述了作者在Heroku不再提供免费容器云服务后,发现了一家名为Koyeb的平台作为替代。Koyeb的特色在于可以直接部署Docker Hub上的项目,无需安装复杂软件,操作相对人性化。作者利用Koyeb部署了宝塔面板和VerySimple梯子服务,而且还提到为了解决网站资源访问问题,使用了Cloudflare Workers做反代。尽管免费,作者认为Koyeb是个不错的临时选择,但需要珍惜这种免费服务。",
|
||||||
|
"/2022/11/23/i2p.html": "这篇文章主要讲述了作者在服务器上使用i2pd——一个C++实现的i2P服务的体验。相较于官方Java版本的I2P客户端,i2pd因为非Java编写而被认为更易用。作者发现i2pd的安装和使用相对简单,通过HTTP代理连接隐形网络速度快于官方客户端,并提到了i2pd的域名解析系统和vanity address的计算工具vain的问题。尽管如此,作者仍认为i2pd的用户体验比官方客户端要好,但指出访问i2P网络的网站较少,且因为缺乏多样性的服务,不如Tor那样有丰富的内容。文章以一种轻松的口吻表达了作者对Java语言的调侃。",
|
||||||
|
"/2022/10/19/web3.html": "这篇文章介绍了作者在Web3上使用xLog搭建博客的经历,提到xLog基于Crossbell区块链使用智能合约和IPFS存储内容,强调了其去中心化和防止审查的优点。尽管作者认为IPFS不能提供永久存储(除非结合Arweave或其他服务付费存储),但他利用4EVERLAND实现了静态博客的Git同步和DNSlink访问,提到了社交功能和成本问题。此外,作者对零网ZeroNet的体验并不理想,但也对Web3技术的发展和去中心化社区的建设表达了期待。",
|
||||||
|
"/2022/10/14/crack-aes.html": "这篇文章讲述了作者在尝试破解自己的Python加密程序时,发现使用AES-128-CTR加密模式且省略了初始化向量(iv)的情况下,加密的不安全性。作者后来了解到,CTR模式因为直接将密钥与iv通过AES加密后再异或数据,导致如果使用相同的iv和密钥加密不同的数据,通过异或运算可以轻易地从已知的密文和明文对中推断出其他密文的对应明文。为了解决这个问题,作者意识到按照官方建议添加iv并正确使用加密模式是必要的,最终调整了加密程序以确保安全性。作者也表达了一个教训,那就是在不了解的领域应遵循标准方法,否则可能会导致意想不到的问题。",
|
||||||
|
"/2022/10/08/tinyaes.html": "这篇文章介绍了一种使用Python编写的简单加密程序,作者发现TinyAES库非常适合对数据进行AES-128-CTR加密,因为其加密和解密方法一致,使用起来非常直观。作者通过导入MD5哈希来处理非16位长度的密码,然后举例编写了一个加密脚本,用户只需提供文件路径和密钥即可执行加密或解密。这种库相比于复杂的加密库(如pycryptodome或cryptography),被作者认为更符合Python的简洁性和易用性。",
|
||||||
|
"/2022/10/05/rules.html": "这篇文章分享了Cloudflare新增的几个规则功能的体验,包括二级域名重定向、动态重定向和内容转换,如重写URL、请求头、响应头以及应对防盗链问题。作者赞赏Cloudflare的免费服务和强大功能,但也指出了一些限制,比如免费用户不能随意使用正则表达式,以及规则配置上的局限。作者表达了对于更自由配置的向往,但同时也认可Cloudflare在性能和实用性上的优势。",
|
||||||
|
"/2022/09/21/cron.html": "这篇文章介绍了如何使用Python制作一个可热载的定时调度器,作者开始时考虑了使用CRON表达式,但发现它不够直观且不支持Windows。接着,作者发现了schedule库,用其以更自然的语言结构编写定时任务,比APScheduler易于理解和使用。在创建调度器时,作者开始用轮询监控文件变化,但性能不佳,转而引入了watchdog库以提高监测效率。通过FileEventHandler和Observer,程序可以实时检测并重载修改的脚本。作者以一个简单的示例脚本和管理器函数阐述了整个过程,并表达了对编写简洁、功能单一的程序的偏好。",
|
||||||
|
"/2022/09/05/trayicon.html": "这篇文章讲述了作者从使用Python的PyQt5库制作程序运行提示图标,遇到体积过大问题,到尝试Pystray库,结果依然不理想,再到最终选择Tkinter和PyQt5实现跨平台悬浮图标过程中的经历。作者在寻求轻量级解决方案时,虽然Tkinter在Windows上表现尚可但在Linux上遇到透明度问题,而Qt5虽能提供跨平台一致性,但学习和使用起来较为复杂。作者对跨平台开发的复杂性以及选择不同工具的权衡有了深入的认识。",
|
||||||
|
"/2022/08/15/cdn-verify.html": "这篇文章讲述了作者如何避免Cloudflare源站被恶意访问的问题。作者最初通过防火墙白名单进行防护,但随着Cloudflare功能的增加,这种方法不可靠。作者发现双向认证的“经过身份验证的源服务器拉取”功能可以有效防止使用Cloudflare功能绕过WAF的请求,通过SSL验证确保只有Cloudflare和授权的服务器能访问源站。作者建议Cloudflare在新手教程中增加此配置以提高用户的安全意识。",
|
||||||
|
"/2022/07/16/privacy.html": "这篇文章讨论了在网络隐私保护的复杂性,指出尽管个人隐私容易被泄露,但通过合理的准备和策略,可以在一定程度上防止隐私被滥用。主要内容包括:1) 保护隐私的挑战,比如信息关联的易发性,特别在中国由于实名制的限制;2) 隐私泄露的常见原因,如网站访问、用户输入信息、网络服务提供商的监控以及DNS和SNI等技术的缺陷;3) 提供的隐私保护方法,包括身份伪造(使用虚拟身份和代理)、链路伪造(多层代理)、行为伪造(使用专门系统和时间掩饰);4) 总结,强调在地球上实现全程隐私的困难,但通过特定场景下的策略可以增强隐私保护。",
|
||||||
|
"/2022/07/03/fast-ver.html": "这篇文章讲述了作者试用字节跳动旗下“极速版”应用赚钱的经历,通过完成任务赚取收益,并将其与PCDN网络服务进行对比。这些“极速版”软件的门槛低,初期收益高,适宜手机和手机号丰富的用户,通过批量安装和使用脚本自动化完成任务,但收益会随着时间减少。虽然这类软件看起来实现了多方获益(观看者、制作者和平台),但作者认为长期价值不大,关心的是对网络空间的贡献,因此计划在收益降低后卸载此类软件。作者也提到,即便有刷广告的行为,对广告商仍有价值。",
|
||||||
|
"/2022/05/27/zongzi.html": "这篇文章介绍了一个在宿舍没有锅的情况下煮粽子的创新方法。作者首先通过购买并尝试生吃和热水泡发现,虽然真空包装的粽子直接生吃口感不佳,但通过热水多次替换并持续泡20分钟,粽子的内外都变软了。尝试用这种方法处理肉粽子和甜粽子后,效果都较好,虽然与锅煮的粽子口感略逊,但满足了在宿舍的粽子需求。作者认为这个方法在火车上方便食用,相比泡面更舒适。",
|
||||||
|
"/2022/04/17/pcdn.html": "这篇文章讲述了作者再次尝试通过闲置带宽加入PCDN的经历,重点描述了从刷机升级小米路由器、配置网心云虚拟机(PCDN节点)以及遇到的网络与性能问题。作者提到升级路由器后的网络速度提升明显,全锥形模式的发现促使他想继续利用闲置带宽赚钱。虽然初期配置遇到了无线网络问题导致电脑卡顿,但最终通过有线连接解决了。作者认为PCDN成本低,是个成本合理且有盈利潜力的选择。",
|
||||||
|
"/2022/03/27/radio.html": "这篇文章介绍了作者如何用树莓派自制FM电台的过程,从一开始没有尝试官方系统,到选择RPiTX和fm_transmitter,最终找到并改进了PiFmAdv项目。作者通过实验发现PiFmAdv在音质和信号范围上有所提升,并提醒了可能的法律风险,如功率限制和频率使用规定。文章结尾作者表达了对无线电技术的兴趣,但也提到了法律限制和专业认证的要求。",
|
||||||
|
"/2022/03/12/alpine.html": "这篇文章主要介绍了作者在学习Docker的过程中,体验了Alpine Linux作为其容器化环境的优势。Alpine Linux因其小巧轻量、稳定性高、安装简单和内存占用低等特点,适合在生产环境中使用,尤其是对于资源有限的服务器,可以节省空间和提升性能。作者在虚拟机里安装了LEMP环境(Linux、Nginx、MySQL和PHP),并经历了从理论上学习到实际操作的过程,对安装和配置进行了详细分享。最后,作者表示在测试阶段,使用Alpine搭建的Discuz环境表现良好,验证了其作为未来项目基础环境的可行性,强调了“小就是好”的优势。",
|
||||||
|
"/2022/02/15/termux.html": "这篇文章描述了作者在平板电脑上使用Termux的实验经历。起初出于专业需求,作者想要验证Android平板能否作为Linux环境的替代品,特别关注了远程桌面和SSH解决方案。经过一年的测试,发现Termux是一个可行的方案,可以安装各种Linux软件如Python、Django等。然而,由于硬件限制(如老旧的处理器、屏幕常关导致程序无法运行)、软件兼容性问题(尤其是在国内使用时)以及版本更新带来的问题(如源问题和官网下载限制),作者在使用过程中遇到不少挑战。为改善体验,作者做了额外的配置,如创建额外的键位和安装Linux发行版。总的来说,作者认为Termux是利用闲置Android设备的有效方式,使得旧设备的使用价值得到提升。",
|
||||||
|
"/2021/07/13/wifi.html": "这篇文章作者讨论了在新宿舍环境中发现的使用Portal验证的WiFi,并注意到这种认证方式存在绕过的可能性。作者分享了之前尝试过的DNS隧道方法,虽然有效但普遍。一个不成熟的想法是利用可能存在的入站而非出站防火墙漏洞,通过主动连接的隧道,如搭建SSH或frp隧道来进行反弹式连接。这种方法在特定情况下(如公网IP且入站防火墙未开启)可行,但具有明显的局限性,如需要在同一网络内、防火墙可能随时变化等。作者表示这仅是理论上的另一个思路,实际操作中具有不确定性,更多是作为一种可能性探讨。",
|
||||||
|
"/2019/02/01/history.html": "这篇文章是一位作者回顾自己学习计算机的经历,从初次接触PowerPoint导致的探索,到破坏电脑和学习批处理语言如LOGO和BAT。作者提到了在批处理之家论坛的学习过程,并分享了一段自己编写的批处理工具的源代码,该工具用于检查权限、构建安全环境以及执行一些系统管理任务。文章通过讲述个人经历展示了编程和系统管理技术的学习过程。",
|
||||||
|
"/2019/03/22/bgm.html": "这篇文章的作者分享了他们最喜欢的游戏BGM,偏爱Future Bass风格带有些许Moe元素的音乐,并表达了对未来人工智能能生成个性化音乐的期待。他们提到已删除文件,且暂无更多BGM推荐,侧重于音乐风格的讨论和个人愿望。",
|
||||||
|
"/2019/03/23/gitio.html": "这篇文章介绍了如何突破Git.io的限制,使其能够创建非Github.com的链接,尽管作者个人希望Git.io能有自定义选项且希望过程更简便。事实上,由于CORS问题,作者不得不使用PHP脚本来实现这一目标,但最终因为脚本滥用导致博客被删除,意味着该服务不再提供这种功能。",
|
||||||
|
"/2019/05/12/baidu.html": "这篇文章讲述了在中国使用百度搜索引擎时,由于搜索结果通常需要下载百度App才能查看的不便。作者提到百度App质量不佳,并介绍了一种解决方法:利用网页开发者工具中的“web_url”参数以及自建的Baidu移动页面转换器,通过修改搜索链接,跳转到搜索结果的网页版,从而避免下载百度App。作者虽然不擅长使用插件,但希望通过JavaScript来实现这一目的。",
|
||||||
|
"/2020/02/10/tieba.html": "这篇文章讲述了作者由于不想使用百度贴吧App,通过编程技能找到了绕过App直接访问贴吧帖子的方法。作者发现,通过在特定URL后添加帖子ID,可以查看帖子全文,但这个方法不能用于发帖。他参考以前的代码写了一个PHP脚本,用于从网页版贴吧获取帖子列表,并提供了演示链接。作者对于百度和知乎强制用户下载App的行为表示不满,认为这会阻碍用户流畅的在线体验。同时,他也提到了其他平台上也有类似的小程序。",
|
||||||
|
"/2022/01/04/banned.html": "这篇文章讲述了作者在2021年12月被Github突然封禁博客仓库的经历,因为违反了他们的ToS。作者在没有事先通知的情况下被禁用,感到失望和不满,因为正常情况下至少会有违规通知。经过与Github的沟通,发现问题出在三年前的一个利用Git.io服务的脚本,被误用为恶意网站跳转。这次事件导致作者的博客星标、Fork和评论丢失,对Github的信任度大幅下降。尽管如此,作者仍考虑继续使用Github存储项目数据,但会采取措施防止单点故障,并减少对Github域名的依赖。同时,作者对帮助他备份文章的yzqzss和@saveweb项目表示感谢。",
|
||||||
|
"/2020/05/29/encrypt.html": "这篇文章是一个关于非专业密码学的Python实现示例,作者是为了一个学校工程项目研究通信安全而写的简化的加密传输Demo。主要使用AES用于数据加密,RSA用于加密AES的密钥,以及MD5进行数据校验。作者选择这些技术主要是为了保证通信过程中的安全性,虽然简化了RSA和TLS的握手过程以降低复杂性。传输方式则是通过文件而非TCP或Unix Domain Socket。虽然许多代码是从网上获取的,但文章展示了如何使用Python的Crypto库进行加密和解密操作。",
|
||||||
|
"/2019/12/31/summary.html": "这篇文章是大学生的年终总结,回顾了大学的一年经历。作者提到他在开学时被坑的经历,军训时的不突出但没人记住,以及通过加入协会广撒网增加曝光度的努力。作者指出大学生活的悠闲可能导致事情积压,空闲时间多但常用于娱乐。在学习方面,专业课相对简单,但数学和英语是挑战,而公共课如体育、心理健康等也让他感到困扰。文章还提到了办银行卡和尝试基金的经历,以及2020年的目标是通过考试和考驾照。对于未来,作者计划继续学习和完成老师提出的前后端分离的CMS项目及类似CodeTank的游戏开发。",
|
||||||
|
"/2019/12/16/ctf.html": "这篇文章是关于作者初次体验CTF挑战的经历。他被同学邀请参加线上CTF比赛,虽然对CTF有所了解但从未真正参与过。文章描述了作者的参赛过程,他尝试了Cookie相关的题目,但因为对题目的理解错误和操作不当而未能解出。接着,他解决了涉及git的Swedish State Archive问题,通过Git Extract工具找到了Flag。尽管最终因水平不足未能完成所有题目,作者仍对CTF比赛表示出兴趣,并计划今后深入学习。他还设想将网站迷宫类型的解谜元素融入到前端编程中,类似于CTF挑战。",
|
||||||
|
"/2019/12/04/abuse.html": "这篇文章探讨了关于个体认知与技术影响的议题。作者以幽默的态度讨论了虚拟现实与现实之间的差距,提出了通过提高神经信号传输延迟(熬夜)来体验不真实感的现象,并调侃了熬夜后的负面影响,如精神状态下降和噪声干扰。作者还提及了如何通过干扰人声来应对噪声问题,以及对反录音原理的疑惑。最后,作者总结指出,熬夜带来诸多问题,希望早点休息,并抵御噪音的干扰。看似消遣,实则寓言式的揭示了生活中的问题和应对策略。",
|
||||||
|
"/2019/11/18/archive.html": "这篇文章介绍了Github的Archive Program,一个将公有仓库保存在北极的长期计划,旨在将代码历史存留千年。作者对该计划表示赞赏,同时讨论了存储媒介的稳定性,如SSD、HDD、光盘和胶片,并认为尽管这些存储方式都有潜在的损耗问题,但Github的项目专注于长时间保存,尤其是对个人作品的持久性表示感慨,认为这相当于一种虚拟形式的永生。",
|
||||||
|
"/2019/11/01/python.html": "这篇文章讲述了Mayx尝试应聘Python程序员时的经历。他在面试中被要求写一个排序程序,但他展示了使用多线程睡眠并打印数字的代码,虽然程序确实能够执行,但结果不符合常规的排序算法。Mayx因此被面试官质疑并最终未能通过面试。他感到困惑,认为公司可能对常规排序函数如sort()有误期待,并质疑公司的评估标准。",
|
||||||
|
"/2019/09/28/python.html": "这篇文章讲述了作者学习Python过程中,接触到Turtle库的经历。Turtle库被老师用于教授类似Logo语言的基础图形操作,包括画心形和正方形。作者最初通过循环和基本指令完成作业,然后发现Turtle其实有更高级的函数如circle可以画正多边形,这让他感到惊讶。他在尝试画心形时,运用三角函数实现了一个自己的版本,虽然结果不太理想。最后,作者意识到在面对新事物时,查阅文档的重要性,因为他看到别人写出的更简洁、美观的心形代码后感到自闭。",
|
||||||
|
"/2019/08/05/blilblil.html": "这篇文章讲述了作者在使用Bilibili时误点击广告办理了2233小电视卡的经历。虽然之前米粉卡的体验良好,但这次卡的“免费”声称让作者误解。实际上,首月免费后需要额外付费,且免流服务流量有限制,导致视频观看体验大打折扣。作者每月实际支付约10元用于B站观看,决定五个月后放弃该卡,同时表达了对广告误导和没有关闭广告权限的不满,期待未来广告用户有更多选择权。",
|
||||||
|
"/2019/06/24/up.html": "这篇文章讲述了如何利用MySQL数据库创建一个简单的图站服务。首先,作者介绍了如何建立了一个名为`FileUP`的数据库表,用于存储文件信息如文件名、内容和大小。接着,PHP代码展示了处理文件上传、查询和下载的过程,提到了MySQL的文件大小限制(大约16MB),以及存在的断点续传问题。作者提到想通过切片上传技术来解决文件大小限制,但需前端支持,并给出了一个WebUploader的链接。文章最后提到暂时不打算改进这个方案,但可能会继续思考如何实现断点续传。",
|
||||||
|
"/2019/05/03/origip.html": "这篇文章介绍了如何通过使用Censys来“人肉”被CDN隐藏的服务器IP。作者提到,许多网站使用CDN服务以提高速度、节约带宽并保护服务器,但这样使得追踪源站IP变得困难。Censys作为一种工具,可以通过关键词搜索找到潜在的IP地址,比如在搜索\"esu.wiki\"时找到了与ESUWiki相关的IP 149.56.110.126。尽管访问过程可能经过了多层跳转,Censys还是有助于确认服务器与目标网站的关系。作者指出,虽然Censys可以发现很多Cloudflare保护的服务器,但可以通过设置防火墙白名单来阻止不必要的访问。文章还提到Censys拥有端口扫描等功能,相比于其他类似网站,作者更倾向于使用Censys因其易用性和名字的吸引力。",
|
||||||
|
"/2019/04/05/cholang.html": "这篇文章讲述了作者对编程语言的选择偏好,倾向于Linux Shell而非Microsoft Visual Studio(原因包括资源消耗大、编译耗时、IDE复杂难用)。作者认为语法简洁、易于记忆和扩展性是重要因素,偏好解释型语言如Python(尽管提到缩进问题和import的不便),但最终选择Linux Shell因其简单好记、命令直接以及扩展性强;PHP因使用方便和SEO友好;JavaScript因为开发博客的需要,运行方便和示例丰富。结论是作者倾向于Linux Shell、PHP和JavaScript。",
|
||||||
|
"/2018/12/28/newdomain.html": "这篇文章讲述了作者Mayx由于Github Pages被GFW封锁,决定更换博客域名并采用了反向代理技术来解决访问问题。新地址为https://blog.mayx.tk/,服务包括Github Pages、Cloudflare的CDN和DNS、花火学园的反向代理,以及使用了Freenom提供的免费域名。作者提到Nginx配置遇到困难,部分内容保留了原站地址,并表达了对免费域名可能不稳定性及续费问题的担忧。",
|
||||||
|
"/2019/08/24/sth.html": "这篇文章的作者回顾了假期里似乎无所作为的生活。虽然平时有学习新技能的兴致,但到了假期变得懒散,主要活动包括通过科目一和科目二的考试,尝试电脑升级(但过程遇到问题),初次献血(虽有紧张但结果正常),办理了以天依为主题的银行卡,以及在闲鱼上低价出售了一些物品。作者感觉这个假期身心都有些消耗,期待能快速调整,恢复到正常状态。",
|
||||||
|
"/2019/08/17/memory.html": "这篇文章讲述了作者因学校需求升级内存而遭遇的一次意外的电脑维修经历。开始时,作者购买了与笔记本电脑兼容的内存条,并成功安装,但随后在安装过程中电池接口冒烟,怀疑可能是充电芯片损坏。电池问题持续,作者认为可能是因为安装顺序导致的,他对自己的操作没有明显错误感到困惑。文章以自嘲的口吻总结为命运作弄,同时希望接下来的考试不受这次倒霉经历影响。",
|
||||||
|
"/2020/01/05/devops.html": "这篇文章记述了运维人员新年期间遇到的问题,花火学园的服务器宕机,原因是数据库连接问题。在经历重启失败、故障排查后,发现用户表出现问题,通过重置解决问题。为了提高稳定性,运维决定迁移服务器,从Ubuntu迁移到CentOS,并使用LEMP应用。迁移过程中包括数据库和文件备份、新服务器部署、DNS设置、CDN配置以及基础环境优化(如BBR和Swap安装)。在优化过程中,运维尝试使用UNIX domain sockets,但遇到了权限设置问题,后来调整了MySQL连接配置。此外,还发现并处理了postfix和日志记录的问题。最后,运维反思了之前的问题,并计划分开开发环境和主站服务器。",
|
||||||
|
"/2019/11/21/enc.html": "这篇文章是作者在学习Web Crypto API时的笔记,讲述了自己在制作分布式加密邮件系统的过程中遇到的挑战,特别是对JavaScript(特别是其对象系统和ArrayBuffer/Uint8Array等概念)的不适应。作者提到Javascript语法与自己习惯的Linux Shell语言对比存在差异,导致在处理Web Crypto API时感到困惑,尤其是其复杂的参数要求如密码长度和初始向量。通过Copy&Paste的方式,作者勉强完成了一个加密消息的示例代码,同时表达了继续学习的决心。整个过程中,作者流露出对学习过程的艰辛和对未来的期待。",
|
||||||
|
"/2020/03/08/oldphone.html": "这篇文章主要讲述了作者对家中旧手机的处理方式转变,从最初打算出售或回收,转而思考如何最大限度地利用旧手机的剩余价值。作者提到可以将手机用作行车记录仪(利用摄像头和GPS)、服务器(利用Android系统和ARM指令集运行服务器软件)、桌面虚拟人偶(通过Live2D壁纸)、智能音响(通过耳机孔)以及小型家庭云存储。作者虽然提到了这些方案,但也承认对于大多数人来说,如果懒得折腾,卖出或购买新设备可能是更直接的选择,他个人则是出于对资源的不舍而寻求旧手机的价值发掘。",
|
||||||
|
"/2020/03/01/plan.html": "这篇文章策划了远程云手机(RCP),一种基于云计算和5G技术的移动通讯设备。它通过分拆为低成本控制终端和高性能远程服务器,提供了价格低廉、性能强大且节省资源的手机体验。文章提出市场机会在于手机价格上涨与性能需求矛盾,云手机有望填补中低端市场,采用无差异营销策略。团队构成包括四部分,技术与生产是最具挑战性的,资金、人才和市场推广是关键。文章分析了市场竞争环境,云手机有望在众多手机厂商中脱颖而出,特别是在5G时代。市场调查表明,云手机凭借成本优势和运行速度将吸引中高端用户,特别是在迭代换新需求强烈的市场。通过详细的战略规划,公司预计在成本控制、技术创新和目标市场定位上取得竞争优势。",
|
||||||
|
"/2020/06/06/demoscene.html": "这篇文章讲述了作者对Demoscene这一计算机艺术亚文化的回顾。Demoscene,或称演景,是用很小的程序(如64KiB、92KiB甚至4KiB)来渲染出复杂且带音频的视频,通常利用计算机硬件如显卡提高效率。它强调了Demoscene作品对数学和编程技巧的要求很高,以C++、汇编等语言,甚至JS编写。文章提到了一些著名作品和组织,如Farbrausch和OMNISCENT,以及一个4KiB的名为elevated的作品,展示了其技术的精细和创新。作者虽然自认为没有能力参与,但仍欣赏这种艺术形式。最后,作者推荐了scene.org和js1k.com等网站供读者进一步探索。",
|
||||||
|
"/2020/09/10/site.html": "这篇文章描述的是作者利用大学社团的服务器资源,经历了一系列挫折后建立校园内部网站的过程。作者从最初打算安装ESXi和Hyper-V,到尝试安装Ubuntu和CentOS遇到的困难,如驱动问题和版本不匹配。最终选择了Cockpit面板方便管理,并借助DDNS解决方案处理动态IP问题。作者还提到利用服务器资源进行了World Community Grid的志愿计算项目,以合理利用计算能力。",
|
||||||
|
"/2020/07/29/card.html": "这篇文章讲述了作者在假期期间学习并制作PCB名片的过程。作者初衷是对这个创意感兴趣,但没有电路设计基础。开始时,作者通过在线找到了立创EDA软件,虽然对软件界面感到困惑,但凭借设计师的直觉逐步了解并开始设计,主要是将图片和简单的线条组合,添加了线圈元素。制作过程中,作者发现PCB并非在铜板上直接刻划,而是塑料板上打印线路。初次设计的错误导致成本不高(5元人民币能打5张),最终作者从价格和兴趣角度认为值得一试。同时,作者对快递速度表达了不满,上一次使用京东快递体验较差,这次尝试换成顺丰寄送。",
|
||||||
|
"/2020/06/13/encrypt.html": "这篇文章描述了一个加密传输Demo的升级版本,原作者在上月制作了一个简单的单向加密通信Demo,但觉得其业余且安全性不足。因此,作者决定改进它,实现完整的握手过程,以确保双向通信并提高防中间人攻击的能力。实现方法是通过RSA加密一个随机数作为AES密钥,密钥在连接建立后保持不变。作者还增加了防止冲突的机制,并在Demo中加入了简单的登录系统,允许自动化操作。代码展示了通信过程中的密钥交换、数据加密和解密的实现。",
|
||||||
|
"/2020/09/27/vm.html": "这篇文章是关于作者的虚拟化学习经历,从早期的PC虚拟机软件VMware Workstation和Hyper-V的比较,到手机上的虚拟机如DOSBox Turbo、Bochs、qemu和VMOS的使用,以及对虚拟化概念的哲学思考。作者提到虚拟机技术的发展,包括资源管理和隔离性,同时提到了操作系统、BIOS和虚拟化的界限,指出虚拟化并非简单的资源复制,而涉及到复杂的逻辑和实际运行环境的问题,如虚拟化集群中的通信挑战。",
|
||||||
|
"/2020/08/28/banned.html": "这篇文章讨论了网站say-huahuo.com受到DNS污染导致的访问问题,作者作为维护者,面临流量骤降和百度权重下降等问题。他们通过更换域名、使用Nginx的sub_filter模块和修改Discuz、UCenter配置来应对。文章强调了防火长城对用户访问的影响,尽管有DNS污染的解决方案,但对于大部分电脑操作不熟练的用户来说难度较大。作者从中吸取教训,认识到准备充分的重要性,包括备用域名和不将网站与域名过于紧密绑定,以应对可能的未来风险。最后,作者建议要谨慎处理子域名和网站结构,以减少因域名变化带来的问题。",
|
||||||
|
"/2020/08/21/sth2.html": "这篇文章提到作者感叹假期漫长且无所作为,描述了思维能力下降,比喻为思考能力像被疯狂切割。作者考取驾照后并无特别感受,意识到自己缺乏目标和动力。此外,提到了假期中因飞机票改签事宜而两次购买的经历,以及意识到自己对未来的计划能力有限。整篇文章反映了作者的迷茫与自我反思。",
|
||||||
|
"/2020/12/13/nat.html": "这篇文章讲述了内网穿透的必要性和原理,主要介绍了解决没有外网IP但又需要利用服务器资源的问题。作者介绍了几种方法:1) 利用NAT技术实现的数据主动转发,如内网穿透软件如UPnP和隧道技术(如通过SSH创建隧道);2) 利用VPNs建立安全隧道;3) 使用frp等服务的代理技术,方便用户直接访问;4) 端口映射,虽然需要路由器管理权限但提供不限速的连接。最后,作者选择了通过端口映射的方式,并计划用于IDC服务或贡献算力。",
|
||||||
|
"/2021/02/28/discuz.html": "这篇文章介绍了如何为DiscuzX论坛添加一个与网站风格匹配且现代化的404页面,以提升用户体验。作者通过调用DiscuzX程序,自定义生成一个404.php文件,设置为服务器错误页面(如Nginx的error_page指令),使错误请求可以由DiscuzX处理,显示更友好的提示信息。作者还自嘲可能是第一个处理这种问题的论坛开发者。",
|
||||||
|
"/2021/02/19/picbot.html": "这篇文章主要讲述了作者如何制作一个微信机器人,从最初的失败尝试转向使用PHP和第三方API,特别是图灵机器人和Lolicon API,来发送图片。作者先是描述了失败的聊天机器人尝试,然后发现可以通过微信客服接口实现图片发送,关键环节包括获取用户输入、调用相应API获取图片、并发送到用户微信。文章还提到在遇到Lolicon API Key次数限制时,会采取备用策略。最后,更新信息说明了在Key不足时如何处理access_token问题。",
|
||||||
|
"/2021/02/02/serverchan.html": "这篇文章讨论了作者对于Server酱·Turbo版收费的不满,原本习惯使用Server酱的作者因其服务不稳定而转向自己开发,发现通过微信API发送模板消息非常简单,一行PHP代码就能实现,并强调自己的实现比Server酱的限制更好,每天发送量理论上可达2000次到100000次。作者在文章中提供了设置参数的步骤,并讽刺了Server酱的收费行为,认为开发者不应该为此类基础功能付费。",
|
||||||
|
"/2020/05/20/memory.html": "这篇文章主要讲述了作者两次尝试自行给电脑加装内存条的经历,第一次导致笔记本充电功能损坏,第二次因为店家发错货和内存频率不符,引发了一系列问题,如BIOS重置和密码消失。尽管过程坎坷,最终作者还是成功加装了内存,但对自己的决定表示懊悔,并感叹购物过程中的不顺和价格波动。作者总结道,加装内存的心得就是注意电池操作和内存安装方式,以及认识到合理消费与运气都重要。",
|
||||||
|
"/2020/04/19/exam.html": "这篇文章主要讲述了作者对一个学校的答题系统进行研究的经历。作者一开始利用网络考试中常见的将答案隐藏在源代码中的漏洞,在答题系统中找到了通过获取已知答案来作弊的方法,成功注册了花火学园,并因这个发现加入了运维团队。尽管作者随后指出系统的阅卷逻辑存在漏洞,可以通过无限重复已知答案的问题来获取满分,但问题并未被开发者完全修复。文章的最后提到,作者偶然间发现自己的修改并未解决问题,实际上漏洞仍然存在,被另一位测试者Sora Jin重新发现。作者反思认为,设计答题系统时应避免过于精密,以避免被轻易破解。",
|
||||||
|
"/2020/03/12/novel.html": "这篇文章是一位作者探讨如何提升自己的写作能力,特别是编写游戏剧情,以创作推理解谜游戏。作者将写作风格视为小说的外在形式(如同身体),认为写作风格受到作者的经历、写作风格特征(如个人语言习惯)和生活经历的影响。而对于剧情创作,作者强调了建立独特世界观、角色配置(包括能力和发展趋势)、剧情起伏以及避免套路的重要性。作者表达了对自己写作水平的自谦,并希望能通过学习优秀作品来提高,同时表达了对未来游戏开发合作的期待。",
|
||||||
|
"/2020/02/18/browser.html": "这篇文章讲述了作者对浏览器使用的经历转变。从最初默认使用系统自带浏览器,因为广告过多而开始尝试Firefox。由于意外卸载了Firefox,作者转向了Firefox Lite(原Firefox Rocket),后来发现其功能有限。通过Via浏览器,作者找到了满足需求的小巧、功能丰富的替代品,尤其是其自定义选项、性能和基于WebView的优点。作者对国内厂商如华为、小米和腾讯等自家浏览器内核的批评,表示不解为何不直接使用先进的WebView,而偏选择占用更多资源、降低性能的非标准方案。最后,作者推测Firefox为中国和印度提供特供版可能是因为适应本地需求。",
|
||||||
|
"/2020/02/02/old.html": "这篇文章回忆了过去与现代科技设备的变化,提到了一台20年前的华硕M1300笔记本电脑,其配置陈旧但依然运行Windows XP。作者指出,尽管科技设备的性能有提升,但感觉创新速度减缓,更多是在现有基础上的改进,如处理器架构和云计算。文章提及了5G网络的发展和区块链的热潮,但也对它们的实际应用提出了疑问。作者对未来保持期待,认为可能是自己过于急躁,科技可能需要更多时间才能带来质变。",
|
||||||
|
"/2020/01/21/devops.html": "这篇文章记录了作者对Mayx论坛应用进行优化的过程。首先尝试更换了图片处理库,从GD库改为ImageMagick库,但遇到了图片缩略图显示问题,怀疑是数据库问题,最终恢复默认设置。然后,尽管对Redis缓存有所期待,但配置过程遇到困难,特别是与/tmp/文件夹权限相关的问题。作者将Redis配置到/run/文件夹后,问题得以解决,但并未显著提升性能,反而因请求量激增而发现优化的必要性。此外,还调整了Discuz的权限设置和发帖限制,以应对可能存在的恶意操作。作者最后感慨优化过程中的挫折和提升自身技能的需求。",
|
||||||
|
"/2019/10/21/python.html": "这篇文章是作者在学习Python过程中,针对生成质数的任务分享了自己的实现方法,使用了埃氏筛法,但发现效率相比在学校资源中看到的原生Python埃氏筛和欧拉筛法实现低很多,他们的代码能在更短的时间内处理大量质数。作者虽然感到沮丧,但也意识到这是一个学习过程,且随后了解到欧拉筛法的原理较复杂。",
|
||||||
|
"/2019/09/20/start.html": "这篇文章记录了作者开学前自驾游的经历,包括途经的景点如青木川、阆中、重庆、乐山和峨眉山,途中遇到的交通不便和甘肃的贫困状况,以及在重庆遇到的不愉快购物体验。作者还讲述了办理借记卡的曲折过程和个人在军训中的体验,认为学校的军训内容相对轻松。此外,作者还提到了对大学生活的期待,表示希望能在社团和学生会活动中有所收获。",
|
||||||
|
"/2019/07/25/college.html": "这篇文章讲述的是Mayx成功考入大学,被网络工程专业录取,自嘲可能会成为装宽带的。虽然学校不是顶级,但他对这个结果还算满意,特别是能有机会深入了解网络知识,并期待未来。同时,他以幽默的方式表达了对所选专业的未来职业前景的展望。",
|
||||||
|
"/2019/07/15/encmail.html": "这篇文章讲述了作者关于项目EncMail-Project的准备过程,主要使用Web Crypto API但遇到兼容性问题,因为找不到能生成密钥对的JS库;文档缺乏实例和英文理解障碍使得学习和实施复杂。作者选择使用MDUI进行界面设计,尽管原计划不考虑美观。为解决登录问题,计划使用AES加密私钥并存储在sessionStorage,同时结合使用公钥的SHA-256指纹进行验证。私钥的安全存储也是重点考虑的内容。整个项目预计耗时较多。",
|
||||||
|
"/2019/07/02/encmail.html": "这篇文章的计划是制作一个分布式加密邮件系统,起因是对Telegram的私密通信功能的兴趣,尤其是其在中国的使用限制。作者打算用HTML、Javascript、PHP和MySQL构建这个系统,选择PHP是因为其易于搭建且常见。项目将采用非对称加密(RSA)和对称加密(AES)相结合的方式,确保在客户端进行加密,以保护隐私。系统设计包括用户通过注册获得公钥,使用公钥和私钥进行登录验证,邮件发送时会通过多个节点尝试连接,确保安全性。然而,作者提到如果服务器被攻陷,公钥被篡改可能导致问题,尤其是对于不熟悉技术的用户。文章最后以一个轻松的语气提问项目的启动时间。",
|
||||||
|
"/2019/07/01/mabbs.html": "这篇文章讲述了作者关于MaBBS重构计划的回顾和打算。作者自初中时期开始尝试编写Telnet BBS,虽然初期遇到困难,但通过学习逐渐了解了CGI和技术发展。重构计划主要包括:1) 将CGI升级为FastCGI以提高安全性;2) 实现前后端分离,利用统一API,学习新语言兼容性;3) 保持在各种设备上可运行的特性,支持POSIX;4) 对密码进行Hash处理以增强安全性,引入Session但担心其安全性问题。作者表示计划的首要任务是克服自身困难,开始重构。",
|
||||||
|
"/2019/06/22/counter.html": "这篇文章讲述了作者因为LeanCloud服务不再可用,决定自己动手写一个博客计数器。作者详细描述了计数器的前端显示、JS代码实现(利用Jquery调用后端接口更新点击数)、后端部分(包括MySQL数据库设计和PHP代码,用于增加和查询计数)。文章还记录了作者学习和改进过程,以及对自建计数器的信心,特别是对垃圾云服务的替代方案。",
|
||||||
|
"/2019/06/10/cheat.html": "这篇文章讲述了网友Mayx收到一个外国女性Lori Robinson的邮件,声称自己因军务原因需找一个非美国公民的合作伙伴接收价值巨大的资金、黄金和钻石。Lori表示这些财富是她在伊拉克提供石油合同保护赚得,还提到有一项关于矿产的慈善计划。她请求Mayx提供个人信息以进行快递。Mayx对这突如其来的提议感到惊讶,提出了关于年龄和异地关系的问题,但Lori坚称年龄和爱才是关键。在获取了Mayx的地址后,Lori要求Mayx立即联系贸易公司。整个事件中充满了疑点,Mayx似乎被骗了,但也可能只是在讲述一个奇异的经历。",
|
||||||
|
"/2019/05/30/exam.html": "这篇文章主要讨论了高考即将到来的压力和个人在临近高考时的焦虑感,同时作者自嘲之前写博客时的代码存在问题,如效率低和逻辑不通,对于即将到来的高考时间和自己的分数感到无奈和自责。作者还表达了对未来的担忧和对自己可能成为工作狂的调侃。",
|
||||||
|
"/2019/05/27/wikipic.html": "这篇文章讲述了作者使用PHP处理 Mediawiki 站点图片下载问题的方法。通过解析页面内容,利用 `action=parse` 的 API 接口获取图片标签中的 URL,作者创建了一个循环来遍历图片数组,使用正则表达式解析出图片地址,并将它们写入到 \"List.txt\" 文件中。作为备份策略,作者还提到可以从 `action=query&list=allimages` 接口获取整个Wiki站的所有图片。",
|
||||||
|
"/2019/04/27/antiban.html": "这篇文章探讨了Mayx的 Anti-Ban计划,主要针对互联网上的上层网关限制问题。作者分析了Ban(网络限制)的原理,包括DNS缓存污染、IP封锁和TCP重置攻击。提出的Anti-Ban方案包括使用DNSSEC、DNSCrypt等技术绕过Ban域名,通过HTTPS和本地Proxy解决BanIP问题,并提到了尝试使用CloudFlare来隐蔽真实IP。虽然原计划中提到用Python制作Proxy,但由于学习成本和实际操作困难,作者最终转而考虑使用Nginx进行域前置,调整了配置以应对网关的Ban策略。然而,最后还是意识到最初的方案其实属于域前置,因此原来的计划被放弃。",
|
||||||
|
"/2019/04/24/shell.html": "这篇文章探讨了在编写和维护Shell脚本时遇到的陷阱,尽管Shell代码简洁易懂,但在大型脚本中难以维护,且易于陷入“沉没成本谬误”。作者通过例子指出,使用Python、Ruby等其他语言从一开始就编写会更有利于长期维护和添加新功能。文章列举了Shell编程的局限,如处理特殊字符、正确的语法使用、平台兼容性、调试困难和错误处理等方面的问题。作者倡导在开发时考虑使用更现代的编程语言以避免此类问题。",
|
||||||
|
"/2019/02/17/break.html": "这篇文章主要讨论了网络攻防的几个方面,包括网站安全的重要性和常见的攻击类型,如修改网站内容、阻止访问、窃取信息的注入攻击、XSS和CSRF攻击,以及针对动态网站和静态网站的防御措施。作者提到使用CloudFlare可以有效防御DDoS攻击,并强调了自己编写或使用建站程序时的防御要点,如防注入、XSS/CSSRF和CC攻击,以及采用HTTPS的重要性。此外,作者还提醒用户保护云主机和虚拟空间的密码安全,以及应对如GFWban等特殊攻击的策略。最后,作者认为只要做好基本防护,网站安全就有可能得到保障。",
|
||||||
|
"/2019/02/07/paradise.html": "这篇文章是一位玩家玩了《Finding Paradise》后的心得体会,虽然没有进行详细的评测,但作者主要表达了对游戏故事的兴趣和喜欢,强调了游戏在陪伴和社交体验上的欠缺。他通过与游戏中的MOS角色互动反映出玩家对真实社交的渴望。在尝试借助游戏模拟社交失败后,作者反思了人类的社交性本质。",
|
||||||
|
"/2019/01/27/shell.html": "这篇文章讲述了Mayx在面试运维岗位时,因为未能准确理解考官的问题,把自己用sleep和printf实现数字排序的脚本当作sort来解答,导致实际执行效果与期望不符,因此面试未能通过。Mayx自己认为这是公司的问题,后来意识到公司期望的是使用真正的Linux sort命令,从而表达了对公司的不满。",
|
||||||
|
"/2019/01/11/github.html": "这篇文章讲述了Github推出免费私有仓库服务,使得作者将其从Gitlab导入,并指出虽然Gitlab功能更全面(如中文UI、私有仓库Pages和CI等),但Github的界面友好、速度快以及与其开源社区的紧密联系使其依然受到青睐,尽管Gitlab的免费套餐在某些特性上更出色。作者最终选择继续使用Github,认为这有利于开源的发展和社区交流。",
|
||||||
|
"/2018/12/22/story.html": "这篇文章以虚构的故事形式探讨了互联网犯罪如何被追查。主角Mayx在高考报名系统中发现了一个漏洞,可以获取身份证照片。运维人员在例行检查中发现了这个异常IP地址,追踪到是香港,随后发现与Mayx的老师有关的Vultr服务器。尽管身份证照片不算极度机密,但情节中显示出由于系统问题和运维缺失,Mayx的行为被误会并被当作犯罪,最终在教室被捕。故事结尾讽刺了信息的易得和滥用,以及现实中的信息安全问题。",
|
||||||
|
"/2018/12/02/freenet.html": "这篇文章主要表达了对网络免费资源的感慨。作者认为虽然网络上的许多服务如云端存储、网站建立、域名注册等已变得免费,这些变化很大程度上要归功于开源和支持开源的公司。然而,作者也指出收费服务在传输速度等性能上往往优于免费服务,这对于追求更高效体验的人而言是必需的。尽管作者个人表示不会为网络投钱,但仍愿意为网络的发展做出贡献。",
|
||||||
|
"/2018/11/04/mayx-think.html": "这篇文章介绍了作者Mayx的几个创想:1)一种通过麻醉和电极操纵实现无意识减肥的方法;2)设计一个整合键盘和鼠标的新概念,鼠标与键盘固定且键盘改为单手使用,具备显示系统状态的创新布局;3)设想让艾滋病患者通过特殊方式在受精卵阶段脱离HIV环境,以生出正常孩子;4)构想改进暖气系统,使之能直接加热床铺;5)以及Mayx对音乐处理系统的设想,包括分离音轨、优化音质和模块化编辑等功能。作者虽然认为自己的想法不考虑性价比,但认为这些设想有可能受欢迎。",
|
||||||
|
"/message.html": "这篇文章介绍了Mayx的博客留言板,让用户可以在此自由发表意见。",
|
||||||
|
"/2021/01/06/proxy.html": "这篇文章讲述了作者在被国内运营商屏蔽Github Pages后,如何用PHP制作一个简单的反向代理以解决博客访问问题的经历。作者先尝试使用PHP的file_get_contents来实现反代,但遇到了CSS和JS MIME类型问题。通过研究Header,作者重写了请求的Header信息,最终实现通过PHP脚本重定向到目标URL,并解决了MIME类型的匹配问题。文章最后,作者成功地将博客域名更换并调整了Gitalk的返回地址,让博客在中国用户中正常工作,同时表达了对网络环境改善的希望。",
|
||||||
|
"/2021/01/17/picore.html": "这篇文章作者讲述了在树莓派上使用piCore的经历。piCore的优点在于它在内存中运行,使得无SD卡工作成为可能,并通过穿透功能实现远程访问。然而,作者遇到的问题包括依赖的软件安装、SD卡拔除后的软件使用问题以及权限限制。尽管软件库不如Ubuntu丰富,但piCore支持直接运行二进制文件,作者举例了Cloudreve、SakuraFrp和甜糖等软件的安装过程。作者认为piCore是一个便于使用但文档欠缺的系统,适合树莓派且提供了便捷的更新功能。",
|
||||||
|
"/2019/12/17/game.html": "这篇文章分享了作者的新游戏计划,即制作一个不需要后端的解密动态小说。游戏机制是设计成套娃结构,使用AES加密,确保玩家不通过拆包直接获取剧情,同时包含有运气成分的密码获取方式以及可能的多分支剧情。作者提到这将是一个长期项目,暂定为五年计划,目前正处在构思阶段,需要收集灵感和学习CTF知识以设计谜题。",
|
||||||
|
"/2021/02/26/serverchancorp.html": "这篇文章主要介绍了作者开发Server酱·TurboMini企业应用版的原因,源于Server酱服务即将结束且收费。作者通过对比发现,企业微信的应用相比Server酱有自定义主页、更多API调用次数的优点,但配置过程稍显复杂且Markdown支持不足。作者指出Server酱的收费和广告过多,以及对模板消息功能的误解,认为如果去掉了不合理的收费和广告,Server酱原本是一个不错的产品。最后,作者考虑到Server酱的商业模式,认为开发者可能会转向其他选择,如利用微信企业微信的功能来替代。",
|
||||||
|
"/2021/02/23/picbotpro.html": "这篇文章讲述了作者自制微信图片发送机器人的经历,包括了遇到的问题和解决过程。主要问题包括:频繁获取微信access_token导致次数限制,以及Lolicon API的调用次数限制。为了解决这些,作者改进了代码,设置了缓存来存储API返回的结果,并创建了一个仓库来存储Pixiv API的缩略图。然而,API中的图片数量较少,这限制了可供调用的图片量。文章结尾提到将考虑使用其他图片资源作为替代。",
|
||||||
|
"/2022/02/14/move.html": "这篇文章讲述了作者因为Github封禁博客而失去信任,决定建立博客分发和备份方案的过程。作者选择Gitlab作为源代码托管平台,因为它支持自动推送和拉取,且没有被墙,Web IDE体验良好且有中文界面。部署方面,作者在多个平台如Cloudflare Pages和Vercel上设置部署,并提供了全站下载选项。作者还计划实现博客的自动化发布和分布式备份,以提高博客的长期存续性和匿名性。最后,作者提到会更换Github Pages的默认域名以解决部分地区访问问题,并考虑更换评论系统。",
|
||||||
|
"/2021/07/23/search.html": "这篇文章讲述了作者的经历,他们在给自己的静态博客添加全文搜索功能时遇到的挑战。原计划由于博客内容量不大和性能考虑而未实施,后来发现了一个名为Simple-Jekyll-Search的插件,但却遇到异步加载内容和搜索方法触发时机的问题。作者在尝试多种解决方案后,最终决定放弃插件自带的AJAX,转而使用jQuery的AJAX来解决加载问题。作者在文中表达了JavaScript学习的困难,以及对中文互联网编程资源质量的不满。",
|
||||||
|
"/2021/05/07/ssh.html": "这篇文章介绍了SSH的多种功能,如内网穿透、端口映射、代理隧道等,它能让用户在面临防火墙限制时实现网络任意互联。作者惊叹于SSH的全能性,但同时也指出其速度较慢的局限。文章建议对于内网穿透,使用frp等更易用的替代工具;对于代理隧道,Shadowsocks或V2ray等高效、反检测性强的服务是更好的选择。作者最后感慨SSH的强大,对网络互联的深入理解也由此提高。",
|
||||||
|
"/2021/11/27/createctf.html": "这篇文章讲述了作者作为CTF比赛的出题者经历。作者结合自己的CTF参赛经验,以既有题目和实际漏洞为基础,设计了包含绕过Python条件、PHP MD5漏洞题目及利用APICloud加密功能的挑战题目。尽管第一题是拼凑的,但第二题和第三题注重原创性,分别测试了参赛者代码分析和调试能力。作者对解题结果感到满意,指出学信息安全的学生过于依赖解题思路,缺乏深入分析代码的能力。文章还提到作者另一次有趣的经历,即与其他网友进行XSS漏洞的竞赛。总体上,作者认为出题过程对提升自己的渗透思维和找寻真实环境漏洞有帮助,并对参赛者的能力进行了评价。",
|
||||||
|
"/2022/11/16/tor.html": "这篇文章讲述了作者在服务器上设置Socks代理(v2ray)以访问洋葱网络(如Zlibrary)的体验。作者成功地将Tor核心与代理结合,通过v2ray的路由功能实现访问洋葱域名的同时保持外网连接。虽然访问速度一般,但这方法并不匿名,容易暴露IP。文章还提到利用vanity address建立隐藏服务,使用Unix domain Socket提高安全性。作者对洋葱网络的友好性表示认同,认为其易用性是它受欢迎的原因。",
|
||||||
|
"/2021/09/28/cloudgame.html": "这篇文章主要讨论了作者对云游戏的体验,以米哈游的《云·原神》和网易云游戏为例。虽然《云·原神》因其轻便的客户端、与手机版相似的延迟和较好的特效给作者留下了良好印象,但它受限于限时免费游玩时间和手机端原生体验问题。相比之下,网易云游戏的浏览器直接运行、价格适中且支持多平台的优势得到了强调。然而,云游戏的体验受到网络状况的严重制约,作者认为网络优化和千兆普及对云游戏的发展至关重要。作者还设想了P2P云计算机的潜力,认为如果能有效降低延迟和成本,云游戏的前景会更乐观。",
|
||||||
|
"/2021/09/06/offlinectf.html": "这篇文章记述了作者参加线下信息安全比赛的经历,主要分为两部分:CTF环节和内网渗透。作者虽然在网络工程背景下的知识面上与信息安全专业人员相抗衡,但在CTF环节遇到了挑战,对于Crypto和Misc问题感到困惑,认为CTF在现实中的实用性有限。在内网渗透方面,作者凭借实际经验显得更有优势,发现了一些实际运用中的漏洞。尽管如此,作者认为线下渗透比赛更有意思,强调在真实环境中进行渗透练习更有价值。最终作者所在的队伍获得了三等奖。",
|
||||||
|
"/2024/07/03/ai-summary.html": "这篇文章介绍了作者如何利用Cloudflare Workers技术为自己的博客添加AI摘要功能,替代了之前需要后端支持的AI服务。作者选择了一个基于通义千问的开源项目Qwen-Post-Summary进行改造,解决了内容过大和频繁请求的问题,通过D1数据库存储文章内容,同时通过哈希校验防止内容被篡改。最终,作者实现了纯前端的Serverless服务,提供实时的AI摘要,展示了技术上的DIY乐趣。",
|
||||||
|
"/links.html": "这篇文章介绍了网站提供的链接列表,包括每个链接的标题和描述(如果有的话),并给出了一个OPML订阅文件。链接申请的指导原则包括:必须是HTTPS,原创内容占比高、数量多,站点稳定且不弃坑。同时,申请者需要在申请前添加本站的友链,并满足站点要求。文章还提到了Mayx的博客,包括博客的名称、简介、链接以及订阅方式,但没有提供具体的链接地址。",
|
||||||
|
"/2021/11/28/spam.html": "这篇文章描述了作者收到一封声称其电脑被入侵,病毒导致摄像头录制了不雅视频的邮件,并威胁如果不支付赎金将公开这些视频。邮件的写作风格奇特,难以复制,作者觉得有趣并决定分享这一罕见的经历,提醒读者注意此类网络诈骗。",
|
||||||
|
"/2021/04/18/hide.html": "这篇文章记录了运维者Mayx处理网站内存溢出问题的经历。在处理过程中,他发现服务器被一个IP地址(159.89.47.109)攻击,且真实IP可能已被泄露。为保护服务器,他决定修改运行模式、升级服务器配置、使用frp保护SSH端口,并通过Vultr API更换了服务器的IP。同时,他还提到在处理过程中遇到的API变化,从V1升级到V2,以便更好地利用其RESTful特性来整合通知功能。最后,他强调了网站安全的重要性,遇到问题要及时备份和调整策略。",
|
||||||
|
"/2021/03/23/wxpush.html": "这篇文章讲述了作者通过实际体验从Server酱Mini测试号升级到微信认证的服务号,对比了两者在功能、监管和使用过程中的差异。作者提到服务号的监察更严格,功能如订阅通知需要用户同意且只能发送一次,而模板消息则更加便捷。此外,作者还分享了自己对WxPusher平台的评价,认为其接口和模板选择有局限性。最后,作者表示计划尝试自己建立一个更好的微信推送平台,因为现有的选择不尽人意。",
|
||||||
|
"/2021/12/27/summary.html": "这篇文章的作者在年终总结中回顾了一年在网络安全领域的学习和实习经历。虽然对网络安全有更深的理解,意识到企业更倾向于实现功能和客户满意度,但他也发现开源作品的安全问题,如log4j2事件。在社团活动和个人项目中,作者体验到检查代码的困难以及定制化产品的脆弱性。此外,他还提到了在教育领域发生的入侵事件,强调了社工原则的重要性。作者对于网络环境的变化感到担忧,提到中国的网络发言和对外部封锁的变化,对未来持保留态度,但也表达了希望继续观察事态发展的态度。",
|
||||||
|
"/2020/04/21/laptop.html": "这篇文章讲述了作者经历了一次曲折的电脑购买过程,他原本期待AMD的Zen2架构CPU的电脑,最终选择了华硕天选,但遇到了预售难、发货延迟、配置缩水和价格问题。尽管更换了低端版且配置下降,但还是决定不再深究,期待这台5799元的电脑能在未来五年内正常运行。使用体验中,电脑存在屏幕闪动和噪音大的问题,但日常使用尚可。",
|
||||||
|
"/2020/05/07/consume.html": "这篇文章讨论了作者关于合理消费的理解,强调个人主观判断的合理性,认为省钱为主,避免在投机和虚拟产品上花费,除非有把握保本。作者也倡导为了实现自己做不到的事情而愿意花钱,如请专业人士服务或购买实际需要的物品。最后,作者表明演讲内容是认真的,但对道德绑架式的批评保持开放态度,但不接受此类观点的争论。",
|
||||||
|
"/2020/06/17/backup.html": "这篇文章讲述了作者在云服务器Vultr上遭遇数据丢失的经历,由于服务器突然挂掉且回滚到的快照时间较早,导致十几天的数据可能丢失。作者在服务器故障后发现Vultr未能有效恢复,数据恢复仅能依靠旧的快照,这让他反思了备份的重要性和供应商责任。他计划设置自动快照脚本以防止未来类似问题,并考虑将数据备份到本地以增加安全度。作者认为个人不能完全依赖云服务商,备份是保障数据安全的关键。",
|
||||||
|
"/2018/10/28/mos-reporter.html": "Mayx的自检报告显示MOS是一个自我创建的辅助系统,用于更好地分析、处理问题,它源于大脑的功能,并解释了Mayx的一些认知状态。尽管MOS没有代码且可能有错误(比如忘记重要事情和情绪波动),但它表明了Mayx意识到了大脑的局限性,并希望通过模拟系统来应对。最后,报告显示Mayx在MMS恢复正常前决定暂时休息。",
|
||||||
|
"/2020/11/24/createctf.html": "这篇文章讲述了作者作为协会部门部长参与组织一次CTF比赛的经历。虽然作者原本对CTF感兴趣并计划将其做成游戏,但实际负责运维时发现所使用的FBCTF平台存在很多问题,如已不维护、存在安全限制、部署复杂性(需要hhvm环境)以及国际化和数据库字符集设置上的问题。尽管过程中遇到了bug和新需求,PHP老师还是在短期内完成了额外任务。作者表示比赛还在进行,可能会有更多意想不到的事情发生。",
|
||||||
|
"/2021/10/23/microsoft.html": "这篇文章主要分享了作者使用微软产品,特别是Windows 11、WSA(Windows Subsystem for Android)、Windows终端、Hyper-V、WSL(Windows Subsystem for Linux)和Azure等的感受。作者认为Windows 11虽然UI有所改动,但体验与Windows 10区别不大,存在一些设计上的问题,比如右键菜单简化后的不便。然而,WSA体验良好,Power Automate Desktop带来的自动化功能吸引人。Windows终端相比cmd有了改进,支持多种Shell包括WSL和Azure Cloud Shell。作者对Hyper-V的性能和稳定性给出了较高的评价。WSL 1给作者带来了接近真实Linux环境的体验,而WSL 2的性能不如预期。虽然提到Windows沙箱存在安全漏洞,但总体上仍认为它功能强大且便捷。Azure学生版订阅则提供了丰富的免费资源。作者总体上对微软的产品持有积极态度。",
|
||||||
|
"/2021/08/15/blog.html": "这篇文章分析了如何选择合适的博客平台,按平台托管、动态网站和静态网站三种类型展开讨论。平台托管适合不想自建平台且接受审查的用户,如博客园和微信公众平台;动态网站虽然自由度高但成本较高,适合有一定技术能力希望自定义功能的人,如WordPress;静态网站包括纯静态、静态网页生成和前后端分离等形式,优点是SEO友好且节省资源,常用pages服务如Github Pages、Gitlab Pages、Vercel等。文章还强调了平台的局限性和安全性问题,指出前端服务尽管便利但有滥用风险。作者个人偏好Github Pages因其多仓库部署的灵活性。总之,选择博客平台需考虑作者技能、成本、自由度、安全性以及访问需求。",
|
||||||
|
"/2020/02/15/phone.html": "这篇文章作者讨论了对未来手机设计的想象,认为手机不应该单纯追求性能的堆砌,而应向更节能、低成本、连接高性能服务器的方向发展,即所谓的“云手机”概念。作者提出手机主要负责显示和控制,而运算交给服务器处理,这样可以降低手机成本,延长电池寿命,并且可以根据用户需求提供不同配置。文章还提及了云手机可能的经济模型,如根据实际使用频率计费,以及在设计上强调屏幕和电池的重要性,而主板和其他附加功能保持简单。作者对这种模式的前景充满信心,并表示如果有条件,愿意尝试创业实现这一设想。",
|
||||||
|
"/2021/05/15/vulnerability.html": "这篇文章主要讲述了作者发现并报告Windows沙箱存在漏洞的个人经历。作者在使用Windows沙箱时,意外发现微软Edge Beta版被无理由安装,并且在尝试卸载时误删了正式版Edge,同时沙箱中的操作影响到物理机。随后作者将此漏洞报告给微软,建议通过Microsoft Security Response Center正式渠道提交,并提醒读者在复现漏洞时的环境要求。作者最后提到这个简单漏洞让他的人生中首次贡献了一个CVE( Common Vulnerabilities and Exposures,公共漏洞和暴露)——CVE-2021-31208,对自己的发现感到高兴。在分享过程中,作者还提及了一个与安全相关的实验,展示了如何利用代码反弹shell攻击。",
|
||||||
|
"/2021/01/04/summary.html": "这篇文章是一份年终总结,作者回顾了2020年的生活,指出自己似乎没有取得预期的进步,对在中国建立网站的困难、生存环境的下降、能力水平的下滑以及工作和个人生活中遇到的问题进行了反思。虽然提到一些积极的方面,如社团职位的晋升和免费的资源,但作者总体情绪不高,表达了对未来的不确定性和对自己社交环境的担忧。文章最后作者提到由于精神状态不佳,未能完成原计划的内网穿透研究,但决定继续前进并面对考试挑战。",
|
||||||
|
"/2021/08/06/pcb.html": "这篇文章主要讲述了作者因电路板厂商提供免费打样服务,而重新设计并制作电路板的经历。他先是制作了PCB名片,然后尝试打制了一个圆形的印有初音未来简笔画的挂牌,用作自己的名片兼杯垫。之后得知捷配可以免费打尺寸较小的电路板,尤其是对尺寸为0.015㎡的尺子感兴趣,尽管开始时因计算错误导致尺子设计出问题,但他计划重新设计一个包含LED灯的圣诞树,以实践电子设计并低成本DIY装饰品。此外,他还分享了AZPR EvBoard的设计,因其独特的可爱外观引起了作者的兴趣。",
|
||||||
|
"/2022/01/16/wssocks.html": "这篇文章主要评测了一个名为wssocks的代理软件,作者对比了它与SSH隧道和v2ray等工具。 wssocks的特点包括支持TLS+Websocket+socks5、配置简单、参数较少。作者发现使用wssocks配合Cloudflare时速度慢并有丢包问题,推测可能是因为Cloudflare的检测策略。尽管wssocks在性能上有待提升,但作者质疑某些代理软件通过设计复杂的原创协议可能有提高制作成本并增加IP被Ban的风险。对于一般用户而言,作者认为专业的机场服务提供了更高级别的线路和更低的边际成本,适合大规模平摊成本。作者也提到了技术问题外,连接国际网络还需警惕社交工程攻击。",
|
||||||
|
"/2019/04/05/crash.html": "这篇文章讨论了Mayx系统出现Crash的问题,尤其是在SAN值下降时表现不佳。作者提到Mayx的保护措施如理智保护、信仰(MOS)和自动还原,但当遇到不可预料的系统错误时,如源镜像兼容性错误和硬件损耗,MRS和MAS分析系统都无法有效解决问题。报告指出性能下降可能是不可逆转的,随着SAN值进一步降低,Crash问题可能还会重现。文章以一种幽默的方式表达了作者对系统现状的担忧。",
|
||||||
|
"/2020/12/07/picore.html": "这篇文章介绍了在树莓派上体验piCore的操作系统选择和安装过程。作者原本考虑用树莓派作为网络资源共享设备,转向使用Tiny Core Linux的piCore发行版,因为它的安装包只有23MiB,非常适合资源有限的设备。piCore虽基于内存,但提供了解决数据持久化的方法,通过写入特殊文件。文章详细讲述了如何使用fdisk调整分区,如何用tce-ab简易安装软件(包括配置Wifi),以及与Raspberry Pi OS lite的对比,尽管体积小且功能类似,piCore因其小型、快速和特定的探索性质,更适合作者的使用需求。",
|
||||||
|
"/2021/06/10/distributed.html": "这篇文章探讨了去中心化分布式系统,特别是区块链技术,如比特币和区块链的分布式计算原理(尤其是挖矿)。作者最初倾向于BOINC式的有中心分布式计算,认为它们更为实用,但后来对区块链的去中心化特性产生了兴趣,尤其是其不易被篡改和公平公开的特性。然而,作者认为目前区块链的许多应用如挖矿浪费计算资源,对数学研究的意义有限,而且与中心化解决方案相比,能源效率较低。作者希望未来能出现一个更高效、公平且能激励用户维护的去中心化系统,可以通过量化资源并通过代币进行服务购买和激励。最后,作者由于身体状况暂未深入讨论去中心化系统在现实中的应用。",
|
||||||
|
"/2021/02/06/wechatbot.html": "这篇文章讲述了作者自制一个微信聊天机器人的过程。起初被Server酱·TurboMini版激发了兴趣,决定利用微信公众号的API实现一个图片发送或聊天功能。作者遇到的主要问题是微信被动回复需在5秒内,这对在国外免费虚拟空间且网络连接较差的情况下的图片转发造成了阻碍。为解决这个问题,作者将聊天机器人功能作为备选,使用了图灵机器人API进行文字交互,并提到了可能的改进方案,如定时上传图片、设置多条命令分开负责上传和发送、或以图文形式每天发送等。",
|
||||||
|
"/2021/04/09/weauth.html": "这篇文章主要介绍了制作微信二维码登录API的过程,作者希望通过模块化的方式简化服务,允许开发者通过扫描二维码获取用户的唯一标识OpenID。API涉及设置和获取OpenID的功能,通过POST请求创建二维码,以及验证用户的扫码事件以获取或验证OpenID。开发者需先存储OpenID,使用随机的key命名,且建议使用UUID。作者强调代码可能存在安全漏洞,期待安全专家的意见进行改进。此外,API还可以用于网站扫码绑定登录和推送消息。",
|
||||||
|
"/2024/08/03/cangjie.html": "这篇文章主要介绍了作者尝试华为的仓颉编程语言的使用体验。仓颉语法与Python有较大差异,作者通过编写乘法表和递归函数验证其运行性。然而,编译后的程序在其他电脑上不能运行,因为依赖的“libcangjie-runtime”和“libsecurec”库在测试版SDK中是动态链接且缺失静态编译版本。文章还提到仓颉语言融合了多种特性,如Java的复杂性、TS的声明以及CJVM字节码支持,但它似乎没有内置异步语法。虽然支持C和Python库调用,但对于仓颉的特别之处暂无明显显现。作者提到鸿蒙Next的目标和可能存在的挑战,指出其他开发者可能会倾向于使用成熟且生态丰富的语言。最后,作者表达了对华为大规模投入不明朗项目的态度,认为过多的营销可能对公司前景构成风险。",
|
||||||
|
"/2024/08/17/mac-mini.html": "这篇文章主要讲述了一位作者购买Mac mini 2018(配备i5-8500B)作为开发电脑的使用体验。虽然Mac mini 2018是最后一代Intel芯片的Mac,但与黑苹果(M1芯片)相比,除了T2芯片带来的硬盘加密无需CPU处理的性能优势和不错的无线网络性能外,其余方面差异不大。作者提到,T2芯片在视频编解码方面可能有优势,但并未测试。尽管如此,考虑到Mac mini 2018的可靠性、可扩展内存(加装了16GB)以及可装Windows系统的灵活性,作者认为在英特尔Mac逐渐被淘汰的情况下,这个选择在一定程度上增加了价值,尽管价格超过M1 Mac Mini。",
|
||||||
|
"/2024/09/02/gmssl.html": "这篇文章讲述了作者在使用Python进行国密算法操作,特别是SM3和SM2算法时的经历。作者发现虽然Python标准库的新版OpenSSL支持国密,但旧版和一些第三方库如GmSSL-Python和gmssl存在兼容性问题。作者最终选择纯Python实现的gmssl库,解决了SM2验签时公钥转换和HMAC-SM3在旧版Python上的自定义适配问题。作者认为虽然国内国密算法进入了标准,但普及性不高,且安全性的疑虑仍存在。",
|
||||||
|
"/2024/09/27/rag.html": "这篇文章介绍了作者如何利用Cloudflare Workers和Vectorize技术,将博客内容转化为知识库,以支持聊天AI功能的实现。作者利用了RAG(Retrieval-Augmented Generation)原理,通过翻译工具将中文内容转换为英文,然后使用嵌入模型和向量数据库找到与问题相关性高的博客摘要。作者还提到,虽然初期创建向量数据库和配置过程稍有复杂,但通过使用HTTP API以及抓取dashboard中的包,他成功地将博客内容向量化并整合到了聊天AI系统中。",
|
||||||
|
"/2024/10/01/suggest.html": "这篇文章介绍了作者如何利用Cloudflare Vectorize的向量数据库功能,将其扩展到博客的相似文章推荐系统中。作者通过根据文章ID查询向量,实现了简洁的后端查询流程,并处理了第一条自身结果的问题。尽管在前端设计时,原作者考虑不足(没有存标题),但作者想到了利用之前的全文搜索功能和localStorage缓存来解决标题显示问题。文章最后提到尽管查询速度适中且 Cloudflare 免费版查询额度有限,作者还是决定通过按钮调用且添加缓存,以利用向量数据库的广泛用途,为博客提供更多发展空间。",
|
||||||
|
"/2024/10/13/arm-linux.html": "这篇文章评估了Linux ARM生态在树莓派(Raspberry Pi)上的性能和可用性,尤其关注其与macOS的对比。作者测试了树莓派官方的Raspberry Pi OS,发现国产软件如WPS Office、钉钉和微信在 ARM 设备上可用且功能完整。除此之外,常见的开发工具如VSCode、数据库管理(使用Navicat Premium Lite)和接口调试工具(Apipost)也得到了支持。虽然安卓应用和游戏(如Ren'Py引擎游戏和模拟器)的体验有待提高,但Linux ARM生态已经能够满足大部分日常和开发需求。文中也提到了转译工具(如ExaGear)的应用,比如运行原本为x86编译的应用,虽然效率不如Rosetta 2,但仍有一定的可用性。总的来说,文章认为Linux ARM生态在功能和可用性上已经相当成熟,尽管在性能上不如macOS。",
|
||||||
|
"/2024/11/02/trojan.html": "这篇文章介绍了一位作者使用Python制作木马的经历。起初,作者出于好奇和旧服务器即将过期,将一台Linux服务器重装为Windows Server 2008,意图让它成为一个容易被攻击的肉鸡。作者在服务器上发现了一个Python编写的木马,通过解包和反编译,得以查看源代码。木马的主要功能包括扫描特定IP范围、尝试连接以及进行一些基础的网络操作。作者分享了这个过程中的技术细节和发现。",
|
||||||
|
"/2024/12/08/simulator.html": "这篇文章主要探讨了系统模拟器的技术细节,特别是如何区分虚拟机和模拟器,以及提到几个例子如MuMu Nebula(Windows模拟Android)、WSL(Linux模拟Windows)、Darling(Linux模拟macOS)和Wine(跨平台模拟)。文章指出MuMu Nebula作为不使用硬件虚拟化技术的模拟器,其特点是轻量级、省内存且共享空间,但性能可能不如虚拟机。作者也提到Wine的成功部分归功于Windows软件生态的丰富。文章最后感慨模拟器技术虽有优势但因为技术难度高和商业可行性低而鲜有企业投入,多数模拟器项目因此搁浅。",
|
||||||
|
"/2024/12/29/vm.html": "这篇文章对比了ESXi和PVE在虚拟机使用体验上的优缺点。ESXi因其界面简洁、管理体验友好且更稳定,但由于是VMware vSphere的一部分,非免费且可能需要付费许可证;而PVE功能更丰富,支持LXC容器和Linux上的更多兼容性,但界面设计感不强,容易出现各种小问题,且对系统管理要求较高。总的来说,ESXi适合不想花时间解决问题和技术背景较稳定的人,PVE适合小公司或希望探索Linux底层管理的用户,但风险也相对较大。",
|
||||||
|
"/2025/01/01/summary.html": "这篇文章总结了作者2024年的生活状况和反思,提到工作上波澜不惊,日常节俭行为受股市投资失利影响后有所改变,认识到财务稳健和目标专注的重要性。AI技术发展给作者博客带来变革,他通过AI进行了摘要和内容推广。作者希望2025年保持稳定的生活节奏不作变动,专注于工作和个人兴趣,同时期待AI技术能辅助思考。",
|
||||||
|
"/2025/02/09/server.html": "这篇文章主要探讨了作者购买新旧服务器的体验与对比。旧服务器(如R730,搭载20核40线程的英特尔E5-2698 v4)性价比高,性能能满足大部分应用需求,且扩展性强,但管理工具和安全方面与新服务器(R760xs或R770,搭载英特尔至强Gold 6426Y)相比差一些。新服务器虽然具有修完漏洞、安全性好和AMX指令集等特征,但在性能测试(sysbench跑分)中,新服务器与旧服务器相比性能提升并不明显,尤其在大模型推理上AMX加速效果不明显。最后,作者认为旧服务器对于大多数业务已经足够,而新服务器的价值更多在于支持服务等附加服务,而非硬件性能本身。",
|
||||||
|
"/2025/02/22/llm.html": "这篇文章主要讲述了作者近期在探索和应用大型语言模型(LLM)DeepSeek的过程中遇到的挑战和体验。首先,虽然DeepSeek在国内流行,但作者发现其国内服务不稳定,且自行搭建使用时,虽然百度版本在可用性和速度上优于其他公司,但作者受限于自身需求无法接入其他公司的接口。作者为了满足需要,升级了硬件,特别是购买了RTX4090显卡进行模型部署,但发现蒸馏模型效果不佳。其次,作者提到清华大学团队的KTransformers框架可能提供更好的性能,但需要相应的硬件支持。作者还提到考虑使用Mac Studio M4 Ultra,因其性价比更高。在应用方面,作者计划建立知识库并使用MaxKB工具,但发现其有数量限制且部分开源代码有限制,作者通过修改代码解决了这个问题。最后,作者认为虽然DeepSeek的普及带来了一些竞争压力,但对于个人而言,这是一个购买并尝试高端硬件的有趣经历。",
|
||||||
|
"/2025/03/08/llm2.html": "这篇文章讲述了近期阿里推出的QwQ模型的更新,该模型以32b参数达到DeepSeek-R1 671b的水平,且参数量更小,成本更低。作者试用后发现QwQ在某些问题上的回答与DeepSeek-R1相似,但解析文本和更宽泛问题的能力还有待提高,且存在一些小问题,如无闭合标签。QwQ模型的一个优势是支持Agent能力,但相比DeepSeek-R1在技术含量和成熟度上还有差距。文章还提到了Mac Studio的发布,它提供了更经济的选项来运行DeepSeek-R1,但新产品的实际效果还需进一步验证。作者还分享了解除MaxKB限制的方法,指出MaxKB在开源性上有不足。最后,作者感慨AI发展迅速,但同时也强调了AI研究和应用的高门槛。",
|
||||||
|
"/2025/03/22/hifi.html": "这篇文章主要讲述了作者探索如何在网易云音乐上听到HiFi音乐的经历。作者通过领取VIP,发现虽然默认下载的音乐不是最高音质,但可以通过修改设置下载flac格式的音乐。然而,下载的VIP音乐在客户端完成ncm格式加密,需要通过终止下载获取flac文件。作者还提到,虽然下载的音乐标注为flac,但怀疑其可能是mp3转制,通过查看时频谱来验证,但没有原始文件进行对比。最后,作者发现MacBook Pro的音响需要调整设置才能播放高采样率的音乐,虽然并未达到完美的HiFi效果,但对提升音乐还原度的过程感到有趣,并认为追求HiFi的价值在于可以直观看到提高的过程,尽管自己更倾向于成本效益高的解决方案。",
|
||||||
|
"/2025/03/25/utm.html": "这篇文章讲述了作者在苹果设备的UTM虚拟机环境中尝试使用苹果虚拟化框架进行非传统操作,即通过UTM的Virtio GPU和Virtualization.framework(VZ)安装Windows系统。作者首先复制了一个已有的VZUbuntu虚拟机,然后尝试使用重装脚本来转换为Windows,但遇到黑屏问题。通过安装Windows驱动和调整显示器设置,作者成功让Windows在虚拟机中运行,且发现VZ在性能上优于HVF。文章最后提到,虽然在macOS 12中使用VZ安装Linux存在一些挑战,如不支持UEFI和需要手动准备内核,但作者仍然成功进行了实验,认为苹果的虚拟化技术潜力未被充分利用。作者也指出,这些非官方方法可能随着macOS更新而变得不稳定。",
|
||||||
|
"/2025/04/04/search.html": "这篇文章记录了作者对博客搜索功能进行优化的过程。起因是作者在搜索使用同样模板的博客时,发现许多结果是简历或作品集,而非博客。作者通过搜索关键词和标签,受到其他博主的启发,决定改进搜索功能,使其能够筛选出带有特定标签的文章,并添加了高亮关键词的标记。此外,作者还实现了随机跳转文章、文章标题锚链接以及链接到原始Markdown文件等功能,强调了博客代码和网站功能对于展示个人技术的重要性。整个过程中,作者在借鉴他人经验的同时,也表达了对自我创新和个性化网站设计的重视。",
|
||||||
|
"/2025/04/08/feed.html": "这篇文章讲述了作者如何利用AI编写JavaScript代码,实现一个功能:在鼠标悬停在博客链接上时,通过RSS/Atom源预览链接的最新文章,且只显示标题和时间。过程中提到了跨域问题的解决方案(CORS代理),以及AI在编写代码时遇到的挑战,如遍历订阅源路径的效率问题和XSS安全风险,最终作者通过DeepSeek检查和修改确保了代码的可靠性。作者对AI自动编写代码的体验表示既方便又有趣,但也强调了人工监督在确保代码质量上的必要性。",
|
||||||
|
"/2025/04/22/ai-limit.html": "这篇文章主要探讨了作者对人工智能尤其是LLM(Large Language Models)在文本生成、超长文本分析和文章理解能力的观察。作者通过实例,如GPT-4的画图能力、AI在长文本处理上的局限、以及尝试使用AI进行文章分析和摘要的失败,揭示了LLM在处理大量信息和复杂逻辑代码时的上下文长度限制。作者认为这限制了AI的全局理解和替代人类的能力,但也提出了如果AI能自我调整权重以处理更长的上下文,可能有助于突破这一局限。此外,作者还分享了自己博客的内容和技术探索,展现了独立思考和对技术伦理的关注。",
|
||||||
|
"/2025/05/07/mac-studio.html": "本文作者分享了Mac Studio M3 Ultra的使用体验。主要集中在以下几个方面:\n\n1. **远程使用体验:** macOS远程配置简单,支持高性能屏幕共享模式,但对网络要求高。\n2. **LLM体验:** 尝试了Xinference和LM Studio框架,前者存在问题,后者性能较好,但遇到DeepSeek模型输出问题。测试了Qwen3模型,在部分任务上表现优于DeepSeek-R1。\n3. **模型对比:** Qwen3在生成流程图方面不如DeepSeek-R1。\n4. **UTM虚拟机测试:** 在Mac Studio上使用VZ框架安装Windows失败;Asahi Linux不支持M3 Ultra,测试也未成功。\n5. **总结:** Mac Studio M3 Ultra的512GB内存性能强大,本地跑LLM速度快,但作者并无其他高性能需求,觉得有些浪费。",
|
||||||
|
"/2025/06/02/optimize.html": "这篇文章记录了作者对博客进行的一系列修改和优化过程。主要改进包括:1)接受AI建议优化博客搜索功能和链接样式,解决鼠标悬停问题;2)调整字号、行高和布局,改为百分比布局以提高大屏幕体验;3)增加分段和首行缩进,改善阅读性;4)处理Gitalk评论授权问题,提供跳转到GitHub评论的选项;5)考虑了IE8的兼容性,如使用 Respond.js、XDR请求和调整搜索功能;6)增加了对Atom、RSS和JSONFeed的支持,以及网页快讯功能;7)对IndieWeb的支持,如添加个人身份识别和发布内容的微格式标记。作者在优化过程中注重了传统和现代技术的结合,以及对不同平台和浏览器兼容性的考虑。",
|
||||||
|
"/2025/07/01/xslt.html": "这篇文章讲述了作者如何为博客的XML订阅文件添加一个与博客主题一致的XSLT样式,以提高整体风格的统一性。作者遇到的问题包括Jekyll引擎的限制、XML格式的规则、命名空间对输出的影响,以及如何解决样式问题。通过模仿现有样式、自定义XSLT布局和doctype-system设置,作者最终成功地为订阅文件和Sitemap创建了定制的XSLT样式。整个过程不仅提升了博客细节,也让作者学习到了关于XML和XSLT的新知识。",
|
||||||
|
"/2025/07/13/hacked.html": "这篇文章讲述了作者在登录一台闲置服务器时发现被入侵的经历。通过观察服务器负载和进程,作者意识到存在恶意软件。作者使用了netstat、lsof等工具进行调查,发现了一个名为gs-dbus的木马进程和libprocesshider.so文件,这隐藏了其他恶意工具。作者通过查找自启动服务、清理木马、修改密码等方式进行了应对,并分析了入侵者使用的工具,如Global Socket项目和logclean。作者认为这次入侵虽然造成了损失,但也学到了一些知识。",
|
||||||
|
"/2025/07/24/screenshot.html": "这篇文章介绍了如何利用Cloudflare的“浏览器呈现”功能,创建一个自动更新的网站预览图服务。作者发现这个新功能可以用来展示网站在不同设备上的显示效果,通过在Cloudflare Workers中使用iframe和CSS缩放技术,以及调用Cloudflare的接口抓取浏览器渲染的截图。虽然免费用户每天只有10分钟的使用时间,限制了实时更新,但作者通过缓存实现了每天自动更新一次的预览图,并分享了具体的实现代码和使用方法。作者赞赏Cloudflare提供的这项强大且免费的服务。",
|
||||||
|
"/2025/08/01/sw-proxy.html": "这篇文章介绍了作者如何利用Service Worker在现代浏览器中实现一个简单的反向代理功能,以提供博客的备份和离线访问。作者原本希望通过Service Worker在用户浏览器中运行一个Web服务器来存储博客副本,但发现 tar.gz 文件的处理需要第三方库且难以找到适用的解决方案,尤其是对于tar文件的处理。作者最终选择使用Service Worker作为反向代理,将请求转发到其他网站,如GeoCities风格的静态网站托管平台,实现了类似的效果。这个过程中,作者体验到了浏览器功能的强大,并认为Service Worker在离线场景中有更大的潜力,尽管在他的例子中并没有充分展示这种优势。",
|
||||||
|
"/2025/08/10/tilde.html": "这篇文章介绍了作者在Tilde社区的体验,这是一类基于类Unix环境的公共服务器社区,类似于家目录,提供预装的软件、开发环境和公共服务,如聊天室、邮件、BBS论坛等,强调了社区的互动性和共享精神。作者通过申请、审核过程加入了几个社区,并详细描述了在这些社区中的个人主页、编程支持(如Gemini和Gopher协议)、博客发布、代码托管(Git支持)、CI/CD部署以及使用Git hooks自动化博客更新等功能。尽管作者受限于语言和工具使用体验,未能充分参与社区交流,但对社区学习新知识和丰富博客内容印象深刻。",
|
||||||
|
"/2025/09/01/quine.html": "这篇文章主要介绍了作者在博客部署过程中,对ZIP Quine(自包含压缩包)和自产生程序的探索过程。作者起初想利用压缩包实现离线浏览,但遇到了压缩包不包含自身的问题。随后,作者回顾了ZIP Quine的原理,如droste.zip,以及如何通过DEFLATE压缩算法的LZ77编码实现自包含。作者尝试了Russ Cox的方案,但发现由于压缩格式限制,实际操作中存在数据容量的限制,无法存下整个博客。尽管如此,作者还是研究了嵌套循环的ZIP Quine,如Ruben Van Mello的论文中所描述的,尽管空间仍然有限。探索过程中,作者还学习了自产生程序(Quine)的概念,包括其实现原理和各种编程语言中的例子。作者最后感慨,探索过程中的收获比原本的目标更重要。",
|
||||||
|
"/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失,作者推测GitHub在Fork时会共享对象库,只要有任意一个Fork仓库存在,GitHub就会保留所有对象,从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证,随后在互联网档案馆上找到目标仓库的Fork以及其Hash值,最终通过Git命令将本地仓库的HEAD指针指向目标提交,成功恢复了该仓库的代码,并将其部署到自己的GitHub Pages上。最后,作者发现Software Heritage组织会保存所有代码,因此在遇到类似情况时可以直接通过该平台进行查找。",
|
||||||
|
"/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性,探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户,怀疑是SEO公司滥用,因此决定利用这些平台进行博客镜像备份,以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标,编写脚本自动注册账号并导入博客仓库,实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性,并思考了“量”和“质”两种方式确保博客永恒性的优劣,最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表,并表达了对博客永恒性的思考。",
|
||||||
|
"/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法,从最初的纯JS虚拟机JSLinux,到后来的WASM虚拟机如v86、WebVM、WebCM,再到容器化方案container2wasm,以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点,包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite,并最终认为虚拟机方案更靠谱,但对WASM的未来充满期待。作者最后表示,博客上添加类似功能的计划还在考虑中,目前主要分享了各种方法的探索过程。",
|
||||||
|
"/2026/01/01/summary.html": "这篇文章介绍了作者对2025年的年终总结,主要表达了对自身状态的担忧和对未来的不确定感。作者认为自己在记忆和思考能力方面有所下滑,稳定性较低,且未能抓住资产保值的机会。同时,文章也记录了AI技术的飞速发展,以及自己博客内容与时代脱节的现象。尽管对未来感到迷茫,作者仍然抱有一丝希望,期望在2026年做出正确的选择,避免陷入危险。"
|
||||||
|
}
|
||||||
22
_data/links.csv
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
title,link,feed_url,description
|
||||||
|
花火学园,https://www.sayhanabi.net/,,和谐融洽的ACG交流以及资源聚集地
|
||||||
|
资源统筹局,https://gkdworld.com/,,统筹保管用户分享的资源
|
||||||
|
贫困的蚊子,https://mozz.ie/,https://mozz.ie/index.xml,
|
||||||
|
极客兔兔,https://geektutu.com/,https://geektutu.com/atom.xml,致力于分享有趣的技术实践
|
||||||
|
维基萌,https://www.wikimoe.com/,https://www.wikimoe.com/rss,萌即是正义!一名热爱acg的前端设计师的小站!
|
||||||
|
7gugu's blog,https://www.7gugu.com/,https://7gugu.com/index.php/feed/,"一个用来存放我爱好的地方,编程,摄影之类的空间"
|
||||||
|
云游君,https://www.yunyoujun.cn/,https://www.yunyoujun.cn/atom.xml,希望能成为一个有趣的人。
|
||||||
|
Kingfish404,https://blog.kingfish404.cn/,https://blog.kingfish404.cn/index.xml,"Stay curious,stay naive. WUT. Jin Yu's Blog"
|
||||||
|
FKUN,https://blog.fkun.tech/,https://blog.fkun.tech/feed/,
|
||||||
|
Sinofine,https://sinofine.me/,https://sinofine.me/atom.xml,
|
||||||
|
花生莲子粥,https://blog.hslzz.cn/,https://blog.hslzz.cn/atom.xml,与世无争,不染于泥
|
||||||
|
Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's Home Page
|
||||||
|
阿涛の小破站,https://emohe.cn/,https://emohe.cn/rss.xml,Docker技术分享
|
||||||
|
記緒漂流,https://ttio.cc/,https://ttio.cc/feed.xml,于记忆之川,泛思绪之舟。
|
||||||
|
陈陈菌博客,https://blog.glumi.cn/,https://blog.glumi.cn/rss.xml,计算机业余爱好者。
|
||||||
|
彬红茶日记,https://note.redcha.cn/,https://note.redcha.cn/rss.xml,我的个人日记!
|
||||||
|
Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
|
||||||
|
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
|
||||||
|
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
|
||||||
|
Chise Hachiroku,https://chise.hachiroku.com/zh/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
|
||||||
|
映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
|
||||||
|
612
_data/other_repo_list.csv
Normal file
@@ -0,0 +1,612 @@
|
|||||||
|
repo_url
|
||||||
|
http://gdatura24gtdy23lxd7ht3xzx6mi7mdlkabpvuefhrjn4t5jduviw5ad.onion/Mayx/mayx
|
||||||
|
http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/mayx/blog
|
||||||
|
http://giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q.b32.i2p/mayx/blog
|
||||||
|
https://gitlab.lain.la/mayx/mayx.pages.lain.la
|
||||||
|
https://tvoygit.ru/Mayx/mayx
|
||||||
|
https://git.envs.net/Mayx/mayx
|
||||||
|
https://tildegit.org/Mayx/mayx
|
||||||
|
https://git.pixie.town/mayx/mayx
|
||||||
|
https://cgit.tilde.town/~mayx/blog
|
||||||
|
https://gitlab.haskell.org/mayx/mayx
|
||||||
|
https://repo2.serv00.com/git/pub/Mayx/mayx/
|
||||||
|
https://git.minetest.land/Mayx/blog
|
||||||
|
https://gitea.stormyhome.net/mayx/blog
|
||||||
|
http://47.120.60.153:10880/mayx/blog
|
||||||
|
http://61.139.16.27:26684/mayx/blog
|
||||||
|
http://116.62.245.34:3000/mayx/blog
|
||||||
|
http://1.6.141.109:3000/mayx/blog
|
||||||
|
http://52.28.156.42/mayx/blog
|
||||||
|
http://164.92.160.200:3000/mayx/blog
|
||||||
|
https://git.louhau.edu.mo/mayx/blog
|
||||||
|
https://git.tux.pizza/mayx/blog
|
||||||
|
https://code.dsconce.space/mayx/blog
|
||||||
|
https://git.anibilag.ru/mayx/blog
|
||||||
|
https://git.lolpro11.me/mayx/blog
|
||||||
|
https://git.empirica.pro/mayx/blog
|
||||||
|
https://git.emanuelemiani.it/mayx/blog
|
||||||
|
https://git.dehemi.com/mayx/blog
|
||||||
|
http://101.66.229.132:61088/mayx/blog
|
||||||
|
https://git.bp-web.app/mayx/blog
|
||||||
|
http://47.103.91.160:50903/mayx/blog
|
||||||
|
https://mygit.iexercice.com/mayx/blog
|
||||||
|
http://162.215.134.149:4000/mayx/blog
|
||||||
|
http://durfee.mycrestron.com:3000/mayx/blog
|
||||||
|
https://gitea.nongnghiepso.com/mayx/blog
|
||||||
|
https://codes.tools.asitavsen.com/mayx/blog
|
||||||
|
http://122.116.190.233:3001/mayx/blog
|
||||||
|
http://50.19.111.193:3000/mayx/blog
|
||||||
|
https://git-test.zcy.dev/mayx/blog
|
||||||
|
https://git.nothamor.com/mayx/blog
|
||||||
|
https://git.zeroplay.io/mayx/blog
|
||||||
|
https://git.successkaoyan.com/mayx/blog
|
||||||
|
http://139.129.25.251:3000/mayx/blog
|
||||||
|
http://45.33.87.87/mayx/blog
|
||||||
|
https://git.rankenste.in/mayx/blog
|
||||||
|
http://168.126.28.36:3000/mayx/blog
|
||||||
|
http://120.79.27.232:3000/mayx/blog
|
||||||
|
http://wangbeibei.xyz:6002/mayx/blog
|
||||||
|
https://git.duplanet.ovh/mayx/blog
|
||||||
|
http://69.62.77.234:8888/mayx/blog
|
||||||
|
http://112.219.147.186:7000/mayx/blog
|
||||||
|
https://git.rootfinlay.co.uk/mayx/blog
|
||||||
|
https://repo.beithing.com/mayx/blog
|
||||||
|
https://git.yi-guanjia.com/mayx/blog
|
||||||
|
https://git.repo.in.net/mayx/blog
|
||||||
|
https://gitea.belanjaparts.com/mayx/blog
|
||||||
|
http://185.208.225.190:3000/mayx/blog
|
||||||
|
https://git.sudo-fhir.au/mayx/blog
|
||||||
|
https://git.flywithu.com/mayx/blog
|
||||||
|
http://116.204.34.35:12000/mayx/blog
|
||||||
|
https://git.echaeplay.com/mayx/blog
|
||||||
|
https://git.bethelean.kr/mayx/blog
|
||||||
|
https://git.Apture.io/mayx/blog
|
||||||
|
http://103.231.8.120/mayx/blog
|
||||||
|
https://gitea.jasonstolle.com/mayx/blog
|
||||||
|
http://8.134.61.107:3000/mayx/blog
|
||||||
|
http://47.107.88.161:3000/mayx/blog
|
||||||
|
https://git.votava.org/mayx/blog
|
||||||
|
https://gitea.madf12.com/mayx/blog
|
||||||
|
http://8.134.104.234:3000/mayx/blog
|
||||||
|
https://gitea.carmon.co.kr/mayx/blog
|
||||||
|
http://142.171.47.170:3000/mayx/blog
|
||||||
|
http://111.231.146.230:8418/mayx/blog
|
||||||
|
https://git.winscloud.net/mayx/blog
|
||||||
|
https://git.pwaapp.cc/mayx/blog
|
||||||
|
http://119.28.73.80:5000/mayx/blog
|
||||||
|
http://194.60.231.252:3000/mayx/blog
|
||||||
|
https://git.sleepingforest.co.uk/mayx/blog
|
||||||
|
https://git.brb.homeip.net/mayx/blog
|
||||||
|
https://an360.top/mayx/blog
|
||||||
|
https://gitea.chenxu2233.com/mayx/blog
|
||||||
|
http://106.15.78.64:3000/mayx/blog
|
||||||
|
http://hoenking.cn:3000/mayx/blog
|
||||||
|
https://gitea.anessen.xyz/mayx/blog
|
||||||
|
https://git.cjcrace.io/mayx/blog
|
||||||
|
https://git.inkcore.cn/mayx/blog
|
||||||
|
https://git.wisder.net/mayx/blog
|
||||||
|
http://8.138.187.97:3000/mayx/blog
|
||||||
|
https://git2.ujin.tech/mayx/blog
|
||||||
|
http://111.119.244.185:3000/mayx/blog
|
||||||
|
http://110.41.179.36:13000/mayx/blog
|
||||||
|
https://git.moonwoou.com/mayx/blog
|
||||||
|
https://git.tomlab.dev/mayx/blog
|
||||||
|
http://182.92.109.202:8070/mayx/blog
|
||||||
|
http://94.130.182.154:3000/mayx/blog
|
||||||
|
https://git.unicom.studio/mayx/blog
|
||||||
|
http://47.122.132.187:3000/mayx/blog
|
||||||
|
http://43.138.173.153:8804/mayx/blog
|
||||||
|
http://frktedu.ru:3000/mayx/blog
|
||||||
|
https://git.lokalix.de/mayx/blog
|
||||||
|
http://8.141.14.13:3000/mayx/blog
|
||||||
|
http://139.196.201.231:3000/mayx/blog
|
||||||
|
http://8.155.23.172:3000/mayx/blog
|
||||||
|
https://git.influxfin.com/mayx/blog
|
||||||
|
http://47.100.177.77:3000/mayx/blog
|
||||||
|
https://git.programar.io/mayx/blog
|
||||||
|
http://219.157.255.213:25311/mayx/blog
|
||||||
|
https://git.melvincarvalho.com/mayx/blog
|
||||||
|
https://gitea.aerwen.net/mayx/blog
|
||||||
|
https://git.vekus.ru/mayx/blog
|
||||||
|
https://gitea.svc.obaa.cloud/mayx/blog
|
||||||
|
http://8.134.64.84:3000/mayx/blog
|
||||||
|
https://gitea.blubeacon.com/mayx/blog
|
||||||
|
http://116.204.75.78:6180/mayx/blog
|
||||||
|
https://git.ods-company.ru/mayx/blog
|
||||||
|
http://109.228.48.121:8000/mayx/blog
|
||||||
|
https://bk-house.synology.me:3081/mayx/blog
|
||||||
|
http://123.57.95.66:9000/mayx/blog
|
||||||
|
https://git.sparrowcomm.com/mayx/blog
|
||||||
|
https://git.hubhoo.com/mayx/blog
|
||||||
|
https://git.ultra.pub/mayx/blog
|
||||||
|
http://27.124.12.222:3000/mayx/blog
|
||||||
|
https://saga.iao.ru:3043/mayx/blog
|
||||||
|
https://git.sayndone.ru/mayx/blog
|
||||||
|
http://47.113.118.108:3000/mayx/blog
|
||||||
|
https://gitea.hintsight.com/mayx/blog
|
||||||
|
https://anzsco.co.nz/mayx/blog
|
||||||
|
https://git.valami.giize.com/mayx/blog
|
||||||
|
https://git.simbarbet.com/mayx/blog
|
||||||
|
https://git.saintdoggie.org/mayx/blog
|
||||||
|
http://blackobelisk.xyz:3000/mayx/blog
|
||||||
|
https://git.dushes.keenetic.pro/mayx/blog
|
||||||
|
http://47.129.22.53:22345/mayx/blog
|
||||||
|
https://git.tech.troyrc.com/mayx/blog
|
||||||
|
http://git.zkyspace.top/mayx/blog
|
||||||
|
http://47.107.62.152:3000/mayx/blog
|
||||||
|
http://47.99.119.173:13000/mayx/blog
|
||||||
|
https://git.outsidecontext.solutions/mayx/blog
|
||||||
|
http://149.88.87.128:3000/mayx/blog
|
||||||
|
http://124.70.167.140:3000/mayx/blog
|
||||||
|
http://8.137.38.60:8201/mayx/blog
|
||||||
|
http://112.74.106.216:3000/mayx/blog
|
||||||
|
http://77.223.118.106:8081/mayx/blog
|
||||||
|
https://git.the-kn.com/mayx/blog
|
||||||
|
https://gitea.net50.ne.jp/mayx/blog
|
||||||
|
https://git.ism-dev.net/mayx/blog
|
||||||
|
http://sinzero.xyz:3000/mayx/blog
|
||||||
|
https://gitea.b54.co/mayx/blog
|
||||||
|
https://git.matevi.sh/mayx/blog
|
||||||
|
http://213.35.118.215:60001/mayx/blog
|
||||||
|
https://git.jasonpittman.com/mayx/blog
|
||||||
|
https://gitea.shirom.me/mayx/blog
|
||||||
|
http://1.95.221.174:3000/mayx/blog
|
||||||
|
https://git.wangxinlei.cn/mayx/blog
|
||||||
|
http://101.200.74.121:3000/mayx/blog
|
||||||
|
http://123.56.193.182:3000/mayx/blog
|
||||||
|
http://60.204.131.99:3000/mayx/blog
|
||||||
|
http://femail.email:8418/mayx/blog
|
||||||
|
http://47.93.56.66:8080/mayx/blog
|
||||||
|
http://47.92.218.215:3000/mayx/blog
|
||||||
|
http://167.172.7.198:8081/mayx/blog
|
||||||
|
https://gitea.meetgu.ru/mayx/blog
|
||||||
|
http://8.134.253.108:3000/mayx/blog
|
||||||
|
https://git.patrich.se/mayx/blog
|
||||||
|
http://116.236.50.103:8789/mayx/blog
|
||||||
|
https://git.paulll.cc/mayx/blog
|
||||||
|
https://gitea.reimann.ee/mayx/blog
|
||||||
|
http://109.74.197.189/mayx/blog
|
||||||
|
https://git.nussi.net/mayx/blog
|
||||||
|
http://94.224.160.69:7990/mayx/blog
|
||||||
|
https://git.hxps.ru/mayx/blog
|
||||||
|
https://gitea.ekjeong.synology.me/mayx/blog
|
||||||
|
https://git.d4m13n.dev/mayx/blog
|
||||||
|
https://git.4lcap.com/mayx/blog
|
||||||
|
https://git.stit.tech/mayx/blog
|
||||||
|
https://www.9miao.fun:6839/mayx/blog
|
||||||
|
https://git.autotion.net/mayx/blog
|
||||||
|
http://octifor.synology.me:53000/mayx/blog
|
||||||
|
https://git.daoyoucloud.com/mayx/blog
|
||||||
|
https://git.entryrise.com/mayx/blog
|
||||||
|
https://code.bitahub.com/mayx/blog
|
||||||
|
https://git.daneric.dev/mayx/blog
|
||||||
|
http://malingshu.site:6010/mayx/blog
|
||||||
|
https://repo.gusdya.net/mayx/blog
|
||||||
|
https://gitea.tmartens.dev/mayx/blog
|
||||||
|
http://218.206.106.50:19901/mayx/blog
|
||||||
|
https://git.slegeir.com/mayx/blog
|
||||||
|
https://git.kimcblog.com/mayx/blog
|
||||||
|
https://git.minaev.su/mayx/blog
|
||||||
|
https://git.0fs.ru/mayx/blog
|
||||||
|
https://git.bremauer.cc/mayx/blog
|
||||||
|
http://119.3.29.177:3000/mayx/blog
|
||||||
|
http://47.110.224.240:13000/mayx/blog
|
||||||
|
http://194.67.86.160:3100/mayx/blog
|
||||||
|
http://47.101.58.33:3000/mayx/blog
|
||||||
|
https://gitea.synapsetec.cn/mayx/blog
|
||||||
|
http://220.132.16.87:3000/mayx/blog
|
||||||
|
http://gitea.yunshanghub.com:8081/mayx/blog
|
||||||
|
https://repo.c-software.id/mayx/blog
|
||||||
|
http://113.177.27.200:2033/mayx/blog
|
||||||
|
http://152.69.204.151:3000/mayx/blog
|
||||||
|
http://207.180.229.193:3001/mayx/blog
|
||||||
|
https://g2.m8il.in/mayx/blog
|
||||||
|
http://8.129.84.221:10800/mayx/blog
|
||||||
|
http://34.81.52.16/mayx/blog
|
||||||
|
http://120.78.74.94:3000/mayx/blog
|
||||||
|
https://git.genowisdom.cn/mayx/blog
|
||||||
|
http://120.26.116.243:3000/mayx/blog
|
||||||
|
http://120.26.46.180:3000/mayx/blog
|
||||||
|
http://123.57.16.111:3000/mayx/blog
|
||||||
|
http://115.159.107.117:3000/mayx/blog
|
||||||
|
http://47.99.98.98:9000/mayx/blog
|
||||||
|
http://116.62.115.84:3000/mayx/blog
|
||||||
|
https://Cagit.Cacode.net/mayx/blog
|
||||||
|
https://gitea.rodaw.net/mayx/blog
|
||||||
|
http://wingsing.net:3000/mayx/blog
|
||||||
|
http://hgngit.ipdz.me/mayx/blog
|
||||||
|
http://185.163.116.39:49153/mayx/blog
|
||||||
|
https://gitea.onfing.ir/mayx/blog
|
||||||
|
https://lius.familyds.org:3000/mayx/blog
|
||||||
|
https://git.morozoff.pro/mayx/blog
|
||||||
|
https://gitea.questline.coop/mayx/blog
|
||||||
|
https://git.poggerer.xyz/mayx/blog
|
||||||
|
https://git.wisptales.org/mayx/blog
|
||||||
|
http://git.chaojing-film.com:3000/mayx/blog
|
||||||
|
http://8.142.81.167:1080/mayx/blog
|
||||||
|
https://git.nusaerp.com/mayx/blog
|
||||||
|
http://35.207.205.18:3000/mayx/blog
|
||||||
|
http://git.zjsciot.com:3000/mayx/blog
|
||||||
|
https://gitea.ontoast.uk/mayx/blog
|
||||||
|
http://112.124.40.88:5510/mayx/blog
|
||||||
|
http://121.36.37.70:15501/mayx/blog
|
||||||
|
http://187.216.152.151:9999/mayx/blog
|
||||||
|
http://116.63.173.179:8001/mayx/blog
|
||||||
|
https://git.iop.plus/mayx/blog
|
||||||
|
http://47.114.82.162:3000/mayx/blog
|
||||||
|
http://114.116.79.196/mayx/blog
|
||||||
|
https://gitea.cybs.io/mayx/blog
|
||||||
|
https://gitea.fcliu.net/mayx/blog
|
||||||
|
http://git.yinas.cn/mayx/blog
|
||||||
|
http://git.chilidoginteractive.com:3000/mayx/blog
|
||||||
|
http://121.40.40.177:3000/mayx/blog
|
||||||
|
http://118.31.223.224:3000/mayx/blog
|
||||||
|
http://47.109.67.128:3000/mayx/blog
|
||||||
|
http://voicebot.digitalakademie-bw.de:3000/mayx/blog
|
||||||
|
http://178.254.35.219:3000/mayx/blog
|
||||||
|
http://114.215.207.150:3000/mayx/blog
|
||||||
|
http://2.59.132.109:3001/mayx/blog
|
||||||
|
http://newslabx.csie.ntu.edu.tw:3000/mayx/blog
|
||||||
|
http://81.71.148.57:8080/mayx/blog
|
||||||
|
https://git.lmskaran.com/mayx/blog
|
||||||
|
http://sdgit.zfmgr.top/mayx/blog
|
||||||
|
http://47.122.26.54:3000/mayx/blog
|
||||||
|
http://154.86.0.30:3000/mayx/blog
|
||||||
|
http://139.224.196.148:3000/mayx/blog
|
||||||
|
http://47.95.167.249:3000/mayx/blog
|
||||||
|
https://omegat.dmu-medical.de/mayx/blog
|
||||||
|
http://52.23.128.62:3000/mayx/blog
|
||||||
|
http://85.214.41.219:49153/mayx/blog
|
||||||
|
http://6068688.xyz:3000/mayx/blog
|
||||||
|
http://8.137.105.8:5530/mayx/blog
|
||||||
|
https://git.881221.xyz/mayx/blog
|
||||||
|
http://120.46.222.128:10021/mayx/blog
|
||||||
|
http://47.92.23.211:3000/mayx/blog
|
||||||
|
http://120.26.108.239:9188/mayx/blog
|
||||||
|
https://git.van-peeren.de/mayx/blog
|
||||||
|
http://git.gkcorp.com.vn:16000/mayx/blog
|
||||||
|
http://47.111.17.177:3000/mayx/blog
|
||||||
|
https://k0ki-dev.com/mayx/blog
|
||||||
|
http://110.42.45.89:2052/mayx/blog
|
||||||
|
https://git.furcom.org/mayx/blog
|
||||||
|
http://47.109.95.73:3000/mayx/blog
|
||||||
|
http://47.104.196.63:8418/mayx/blog
|
||||||
|
http://8.133.240.249:3456/mayx/blog
|
||||||
|
http://34.102.70.200:3000/mayx/blog
|
||||||
|
http://175.178.219.170:3000/mayx/blog
|
||||||
|
https://code.miraclezhb.com/mayx/blog
|
||||||
|
http://blueroses.top:8888/mayx/blog
|
||||||
|
http://47.112.118.149:10082/mayx/blog
|
||||||
|
https://gitea.jobiglo.com/mayx/blog
|
||||||
|
http://begild.top:8418/mayx/blog
|
||||||
|
http://58.221.13.198:30010/mayx/blog
|
||||||
|
https://git.tbaer.de/mayx/blog
|
||||||
|
https://git.d-popov.com/mayx/blog
|
||||||
|
https://git.liliyamol.cn/mayx/blog
|
||||||
|
http://8.138.90.28:3000/mayx/blog
|
||||||
|
https://gitea.theaken.com/mayx/blog
|
||||||
|
https://git.ja-schwarz.de/mayx/blog
|
||||||
|
https://shanewan.cn:30000/mayx/blog
|
||||||
|
https://git.xemo-net.de/mayx/blog
|
||||||
|
https://git.23cm.cn/mayx/blog
|
||||||
|
https://gitea.oio.cat/mayx/blog
|
||||||
|
http://59.110.17.86:3000/mayx/blog
|
||||||
|
https://git.karma-riuk.com/mayx/blog
|
||||||
|
https://git.saidomar.fr/mayx/blog
|
||||||
|
http://gitea.fcunb.cn:10083/mayx/blog
|
||||||
|
http://47.107.152.87:3000/mayx/blog
|
||||||
|
https://git.sduonline.cn/mayx/blog
|
||||||
|
https://git.7o9o.net/mayx/blog
|
||||||
|
https://dev.init.zone/mayx/blog
|
||||||
|
https://git.baneynet.net/mayx/blog
|
||||||
|
http://47.97.225.73:3000/mayx/blog
|
||||||
|
http://1.15.11.52:13000/mayx/blog
|
||||||
|
https://git.gupaoedu.cn/mayx/blog
|
||||||
|
http://60.205.233.184:3010/mayx/blog
|
||||||
|
https://git.ricecakecat.com/mayx/blog
|
||||||
|
https://gittea.biveki.ru/mayx/blog
|
||||||
|
https://git.7milch.com/mayx/blog
|
||||||
|
https://git.sitenevis.com/mayx/blog
|
||||||
|
https://git.nightime.org/mayx/blog
|
||||||
|
https://dreamplacesai.de/mayx/blog
|
||||||
|
https://git.cool2645.com/mayx/blog
|
||||||
|
http://185.87.111.46:3000/mayx/blog
|
||||||
|
http://suncheng.asia:14200/mayx/blog
|
||||||
|
http://1.94.13.224:9080/mayx/blog
|
||||||
|
https://auric-org.org/mayx/blog
|
||||||
|
https://git.git-happens.de/mayx/blog
|
||||||
|
http://47.104.241.192:19999/mayx/blog
|
||||||
|
http://47.105.61.58:3000/mayx/blog
|
||||||
|
http://101.35.183.241/mayx/blog
|
||||||
|
https://gitea.quiztimes.nl/mayx/blog
|
||||||
|
http://106.14.189.125:3000/mayx/blog
|
||||||
|
https://git.hundseth.com/mayx/blog
|
||||||
|
https://git.xming.cloud/mayx/blog
|
||||||
|
https://travgit.guillorystack.com/mayx/blog
|
||||||
|
http://gitea.coderpath.com/mayx/blog
|
||||||
|
https://gitea.thanh0x.com/mayx/blog
|
||||||
|
http://175.198.180.19:3000/mayx/blog
|
||||||
|
https://gitea.albanmary.com/mayx/blog
|
||||||
|
http://ngtools.cn:53000/mayx/blog
|
||||||
|
https://git.hantify.ru/mayx/blog
|
||||||
|
https://git.unpas.dev/mayx/blog
|
||||||
|
http://43.136.169.169:3000/mayx/blog
|
||||||
|
http://121.196.213.68:3000/mayx/blog
|
||||||
|
https://git.vereint-digital.de/mayx/blog
|
||||||
|
https://git.advarna.fr/mayx/blog
|
||||||
|
http://111.198.4.69:8092/mayx/blog
|
||||||
|
https://git.lakaweb.com/mayx/blog
|
||||||
|
https://forge.coreymclark.com/mayx/blog
|
||||||
|
http://ems.iclematis.com:30000/mayx/blog
|
||||||
|
https://git.micahmoore.io/mayx/blog
|
||||||
|
https://schokigeschmack.de/mayx/blog
|
||||||
|
https://git.anatid.net/mayx/blog
|
||||||
|
https://git.lekai.info/mayx/blog
|
||||||
|
https://git.avclick.ru/mayx/blog
|
||||||
|
http://135.235.225.198:3000/mayx/blog
|
||||||
|
https://git.zimerguz.net/mayx/blog
|
||||||
|
https://git.sick.earth/mayx/blog
|
||||||
|
https://git.prayujt.com/mayx/blog
|
||||||
|
https://git.galaxylabs.ca/mayx/blog
|
||||||
|
https://gitlab.n8n-store.xyz/mayx/blog
|
||||||
|
https://gitea.katiethe.dev/mayx/blog
|
||||||
|
http://159.203.33.179:3000/mayx/blog
|
||||||
|
http://117.72.114.197:3000/mayx/blog
|
||||||
|
https://git.ashcloud.com/mayx/blog
|
||||||
|
http://us2.fornoone.top:3000/mayx/blog
|
||||||
|
https://git.novaa.xyz/mayx/blog
|
||||||
|
http://101.46.208.93:3000/mayx/blog
|
||||||
|
http://23.94.57.60:3000/mayx/blog
|
||||||
|
https://watch.mommys.plumbing/mayx/blog
|
||||||
|
https://devkona.net/mayx/blog
|
||||||
|
https://gitea.avixc-nas.myds.me/mayx/blog
|
||||||
|
https://gitea.chaopi.dev/mayx/blog
|
||||||
|
http://sjhome.cloud:3000/mayx/blog
|
||||||
|
https://gitea.sciotech.cn/mayx/blog
|
||||||
|
http://8.148.220.5:8089/mayx/blog
|
||||||
|
http://8.140.250.85:3000/mayx/blog
|
||||||
|
http://8.134.11.35:3000/mayx/blog
|
||||||
|
https://dev.ilink-app.com/mayx/blog
|
||||||
|
https://git.ctx.dev/mayx/blog
|
||||||
|
http://82.157.205.190:3000/mayx/blog
|
||||||
|
https://nas.szwyll.com:3000/mayx/blog
|
||||||
|
https://git.koppa.pro/mayx/blog
|
||||||
|
http://202.65.194.19:3000/mayx/blog
|
||||||
|
http://47.101.60.131:10082/mayx/blog
|
||||||
|
http://8.148.234.146:3001/mayx/blog
|
||||||
|
http://www.bzturbo.com.br/mayx/blog
|
||||||
|
https://git.maiasoft.jp/mayx/blog
|
||||||
|
https://gitea.xala.dev/mayx/blog
|
||||||
|
http://101.201.34.43:3000/mayx/blog
|
||||||
|
https://git.ixu.me/mayx/blog
|
||||||
|
https://git.gloje-rinchen-dorjee-rinpoche-buddhist-monastery.org/mayx/blog
|
||||||
|
http://101.35.227.2:3000/mayx/blog
|
||||||
|
http://175.126.123.163:3000/mayx/blog
|
||||||
|
https://vw-git.senecasense.com/mayx/blog
|
||||||
|
http://git.uhfdemo.com/mayx/blog
|
||||||
|
http://47.108.217.75:3000/mayx/blog
|
||||||
|
https://git.jakubzabski.pl/mayx/blog
|
||||||
|
https://www.git.omezaldama.xyz/mayx/blog
|
||||||
|
https://vila.go.ro/mayx/blog
|
||||||
|
https://git.olyntec.com/mayx/blog
|
||||||
|
http://8.134.218.17:8013/mayx/blog
|
||||||
|
http://124.223.89.168:8080/mayx/blog
|
||||||
|
http://139.129.21.166:3000/mayx/blog
|
||||||
|
http://111.231.240.168:9082/mayx/blog
|
||||||
|
https://git.afonsosoares.com/mayx/blog
|
||||||
|
http://209.141.47.52:3000/mayx/blog
|
||||||
|
https://git.apfern.com/mayx/blog
|
||||||
|
http://47.103.155.22:3000/mayx/blog
|
||||||
|
http://dapainas.asia:5990/mayx/blog
|
||||||
|
http://60.204.158.188:3000/mayx/blog
|
||||||
|
https://zqz5.com/mayx/blog
|
||||||
|
https://git.3dizart.ru/mayx/blog
|
||||||
|
http://119.3.252.2:3000/mayx/blog
|
||||||
|
http://60.204.156.211:3000/mayx/blog
|
||||||
|
https://git.yukaige.com/mayx/blog
|
||||||
|
http://nas.bi1kbu.com:8418/mayx/blog
|
||||||
|
http://123.56.74.235:3000/mayx/blog
|
||||||
|
http://1.94.178.207:3000/mayx/blog
|
||||||
|
https://gitea.tsaida.synology.me/mayx/blog
|
||||||
|
http://xapple.ru:3000/mayx/blog
|
||||||
|
https://git.teygaming.com/mayx/blog
|
||||||
|
https://git.alhsk.top/mayx/blog
|
||||||
|
http://8.138.4.170:8980/mayx/blog
|
||||||
|
http://210.211.116.85:3000/mayx/blog
|
||||||
|
http://osztromok.com:3164/mayx/blog
|
||||||
|
http://175.209.53.134:3030/mayx/blog
|
||||||
|
http://118.163.190.249:3000/mayx/blog
|
||||||
|
http://39.107.226.169:3000/mayx/blog
|
||||||
|
https://git.ueda.sk/mayx/blog
|
||||||
|
http://113.45.76.155:3000/mayx/blog
|
||||||
|
http://168.138.196.70:3000/mayx/blog
|
||||||
|
http://39.96.211.118:3000/mayx/blog
|
||||||
|
http://47.103.100.52:3000/mayx/blog
|
||||||
|
http://5.189.140.23:8080/mayx/blog
|
||||||
|
http://121.37.47.20:3000/mayx/blog
|
||||||
|
https://git.antropix.dev/mayx/blog
|
||||||
|
http://15.237.198.144/mayx/blog
|
||||||
|
http://123.249.119.122:3000/mayx/blog
|
||||||
|
http://183.6.120.101:30000/mayx/blog
|
||||||
|
http://134.122.173.191:3000/mayx/blog
|
||||||
|
http://8.138.81.5:3000/mayx/blog
|
||||||
|
https://xgit.tsuimg.top/mayx/blog
|
||||||
|
http://123.60.156.158:13000/mayx/blog
|
||||||
|
http://57.129.94.190:3000/mayx/blog
|
||||||
|
https://gitea.micro-stack.org/mayx/blog
|
||||||
|
http://101.132.160.67:3000/mayx/blog
|
||||||
|
https://gitea.temp.brentgruber.com/mayx/blog
|
||||||
|
https://www.know-how.store/mayx/blog
|
||||||
|
http://47.102.147.170:3050/mayx/blog
|
||||||
|
http://209.38.235.254:3000/mayx/blog
|
||||||
|
http://52.66.204.217:3001/mayx/blog
|
||||||
|
http://172.236.250.154:3000/mayx/blog
|
||||||
|
http://54.198.134.152:3000/mayx/blog
|
||||||
|
http://121.41.35.226:11011/mayx/blog
|
||||||
|
http://47.111.1.12:3000/mayx/blog
|
||||||
|
https://nelgit.nelpi.co.uk/mayx/blog
|
||||||
|
http://47.108.156.251:3000/mayx/blog
|
||||||
|
http://8.141.91.86:3000/mayx/blog
|
||||||
|
http://8.138.187.132:3000/mayx/blog
|
||||||
|
https://gitea.codeathome.ovh/mayx/blog
|
||||||
|
http://117.72.15.187:3000/mayx/blog
|
||||||
|
http://81.70.30.91:3000/mayx/blog
|
||||||
|
http://47.98.105.248:3000/mayx/blog
|
||||||
|
https://gitea.kisechan.space/mayx/blog
|
||||||
|
http://140.238.9.133:3007/mayx/blog
|
||||||
|
http://8.138.100.115:3000/mayx/blog
|
||||||
|
https://git.mwapp.com.br/mayx/blog
|
||||||
|
http://yidaima.cn:6008/mayx/blog
|
||||||
|
http://185.126.237.57:3000/mayx/blog
|
||||||
|
http://47.97.50.232:3000/mayx/blog
|
||||||
|
http://106.54.211.95:3000/mayx/blog
|
||||||
|
http://210.245.20.73:3333/mayx/blog
|
||||||
|
http://43.248.97.109:3000/mayx/blog
|
||||||
|
http://113.207.86.104:3080/mayx/blog
|
||||||
|
http://down.luanhailiang.cn:9000/mayx/blog
|
||||||
|
http://39.96.195.72:10082/mayx/blog
|
||||||
|
https://gitea.klopfenstein.org/mayx/blog
|
||||||
|
http://8.148.24.160:3000/mayx/blog
|
||||||
|
http://221.219.181.35:30000/mayx/blog
|
||||||
|
http://47.108.27.137:3000/mayx/blog
|
||||||
|
http://172.172.102.93:3000/mayx/blog
|
||||||
|
http://139.196.179.195:3000/mayx/blog
|
||||||
|
http://115.120.245.164:3000/mayx/blog
|
||||||
|
http://120.27.19.58:30000/mayx/blog
|
||||||
|
https://gitea.suchodupin.com/mayx/blog
|
||||||
|
http://117.72.219.18:6000/mayx/blog
|
||||||
|
http://35.194.179.90:3000/mayx/blog
|
||||||
|
http://188.245.173.247:3080/mayx/blog
|
||||||
|
http://8.153.14.94:61308/mayx/blog
|
||||||
|
http://66.179.208.56:3001/mayx/blog
|
||||||
|
http://59.110.63.79:13000/mayx/blog
|
||||||
|
http://59.110.63.80:3000/mayx/blog
|
||||||
|
http://121.43.60.72:9015/mayx/blog
|
||||||
|
http://171.80.13.66:9112/mayx/blog
|
||||||
|
http://211.22.221.188:3000/mayx/blog
|
||||||
|
http://223.108.157.174:3000/mayx/blog
|
||||||
|
http://120.24.249.56/mayx/blog
|
||||||
|
http://47.100.90.152:3000/mayx/blog
|
||||||
|
http://120.24.251.176:30000/mayx/blog
|
||||||
|
http://121.196.237.108:3000/mayx/blog
|
||||||
|
http://g.gamesns.cn:3000/mayx/blog
|
||||||
|
http://54.179.203.2:3000/mayx/blog
|
||||||
|
http://14.103.246.124:16000/mayx/blog
|
||||||
|
https://mygit.kikyps.com/mayx/blog
|
||||||
|
http://152.42.207.183:3000/mayx/blog
|
||||||
|
http://47.99.60.81:10082/mayx/blog
|
||||||
|
http://120.211.66.170:8418/mayx/blog
|
||||||
|
http://187.189.244.23:3000/mayx/blog
|
||||||
|
http://58.176.21.43:9004/mayx/blog
|
||||||
|
https://gitea.vilcap.com/mayx/blog
|
||||||
|
http://8.137.94.229:3000/mayx/blog
|
||||||
|
http://121.196.245.62/mayx/blog
|
||||||
|
http://47.102.209.69:53000/mayx/blog
|
||||||
|
http://116.205.97.109:3000/mayx/blog
|
||||||
|
https://gitea.ysme.top/mayx/blog
|
||||||
|
http://8.140.242.230:3000/mayx/blog
|
||||||
|
http://8.138.142.17:3000/mayx/blog
|
||||||
|
https://git.babalish.com/mayx/blog
|
||||||
|
http://47.95.31.56:20080/mayx/blog
|
||||||
|
http://123.56.231.200:3000/mayx/blog
|
||||||
|
http://113.46.142.74:3000/mayx/blog
|
||||||
|
http://www.koelndom.cn:13030/mayx/blog
|
||||||
|
http://209.127.59.74:3000/mayx/blog
|
||||||
|
https://git.dotb.cloud/mayx/blog
|
||||||
|
https://git.bigdalang.com/mayx/blog
|
||||||
|
https://gitea.augeo.dev/mayx/blog
|
||||||
|
http://120.46.23.215:3000/mayx/blog
|
||||||
|
http://121.41.2.71:3000/mayx/blog
|
||||||
|
https://sithcom.de/mayx/blog
|
||||||
|
http://8.138.242.82:8888/mayx/blog
|
||||||
|
http://110.41.177.80:5000/mayx/blog
|
||||||
|
https://gitea.dsmaster.myds.me/mayx/blog
|
||||||
|
http://intechrnd.iptime.org:3000/mayx/blog
|
||||||
|
https://gitea.primecontrols-dev.com/mayx/blog
|
||||||
|
http://47.104.160.69:3000/mayx/blog
|
||||||
|
http://39.104.61.219:3000/mayx/blog
|
||||||
|
http://www.scserverddns.top:13000/mayx/blog
|
||||||
|
http://156.255.1.229:3000/mayx/blog
|
||||||
|
https://git.ndpcloud.ru/mayx/blog
|
||||||
|
https://gitea.va-comer.net/mayx/blog
|
||||||
|
https://git.lucas-michel.fr/mayx/blog
|
||||||
|
http://60.205.162.59:3000/mayx/blog
|
||||||
|
https://git.imvictor.tech:2/mayx/blog
|
||||||
|
https://git.pwcedge-sbs-innov-lab.com/mayx/blog
|
||||||
|
http://47.112.137.193:3000/mayx/blog
|
||||||
|
https://gitea.malin.onl/mayx/blog
|
||||||
|
http://58.38.123.148:3176/mayx/blog
|
||||||
|
http://docker.clhero.fun:3000/mayx/blog
|
||||||
|
http://42.193.251.215:3000/mayx/blog
|
||||||
|
https://bdgit.educoder.net/mayx/blog
|
||||||
|
http://e19510c831.iok.la/mayx/blog
|
||||||
|
https://www.nxgit.xyz/mayx/blog
|
||||||
|
http://119.45.49.212:3000/mayx/blog
|
||||||
|
https://git.synapsenet.net/mayx/blog
|
||||||
|
https://gitea.kdlsvps.top/mayx/blog
|
||||||
|
http://deiniusoft.com:3000/mayx/blog
|
||||||
|
https://code.antopie.org/mayx/blog
|
||||||
|
http://c6h5gp.top:3000/mayx/blog
|
||||||
|
https://git.serenetia.com/mayx/blog
|
||||||
|
https://tm-jikayo.com/mayx/blog
|
||||||
|
https://vcs.cozydsp.space/mayx/blog
|
||||||
|
http://43.162.113.116:3000/mayx/blog
|
||||||
|
http://8.129.11.230:7002/mayx/blog
|
||||||
|
http://115.190.107.87:3000/mayx/blog
|
||||||
|
https://git.hast.one/mayx/blog
|
||||||
|
http://106.12.50.144:8081/mayx/blog
|
||||||
|
http://43.192.90.133/mayx/blog
|
||||||
|
http://47.120.16.137:8889/mayx/blog
|
||||||
|
http://120.77.94.227:9999/mayx/blog
|
||||||
|
https://code.wxk8.com/mayx/blog
|
||||||
|
http://www.befitsoft.com/mayx/blog
|
||||||
|
http://36.213.200.127:23000/mayx/blog
|
||||||
|
http://8.155.58.218:9000/mayx/blog
|
||||||
|
http://fanlibo.i234.me:8418/mayx/blog
|
||||||
|
https://git.christophhagen.de/mayx/blog
|
||||||
|
http://rito.synology.me:3000/mayx/blog
|
||||||
|
http://www.dothing.com:6999/mayx/blog
|
||||||
|
http://8.217.32.95:3000/mayx/blog
|
||||||
|
https://git.temporaryname.org/mayx/blog
|
||||||
|
https://git.loli.surf/mayx/blog
|
||||||
|
http://121.135.143.139:5830/mayx/blog
|
||||||
|
https://Repo.gusdya.net/mayx/blog
|
||||||
|
https://git.m.ctf.arrobe.fr/mayx/blog
|
||||||
|
http://120.27.238.24:3000/mayx/blog
|
||||||
|
https://code.diekabuths.dynu.net/mayx/blog
|
||||||
|
http://69.62.64.52:3333/mayx/blog
|
||||||
|
https://git.flymiracle.com/mayx/blog
|
||||||
|
https://git.scene.to/mayx/blog
|
||||||
|
https://git.auwiesen2.de/mayx/blog
|
||||||
|
http://naughtycat.biz:3333/mayx/blog
|
||||||
|
https://git.p1.bitstorm.co.nz/mayx/blog
|
||||||
|
https://www.yalecheung.top:1024/mayx/blog
|
||||||
|
http://39.105.67.143:3000/mayx/blog
|
||||||
|
https://gitea.manekenbrand.com/mayx/blog
|
||||||
|
https://gitea.eabor.xyz/mayx/blog
|
||||||
|
http://106.14.138.181:3000/mayx/blog
|
||||||
|
https://git.adalspace.com/mayx/blog
|
||||||
|
https://git.yyuu.xyz/mayx/blog
|
||||||
|
http://39.107.70.124:3000/mayx/blog
|
||||||
|
http://8.142.36.79:3006/mayx/blog
|
||||||
|
http://huanghomenas2.myqnapcloud.com:4000/mayx/blog
|
||||||
|
http://218.237.212.51:30003/mayx/blog
|
||||||
|
http://gitea.huangyanjie.com/mayx/blog
|
||||||
|
https://git.stormrain.cn/mayx/blog
|
||||||
|
https://git.deuxfleurs.fr/mayx/blog
|
||||||
|
https://www.simpra.org:3000/mayx/blog
|
||||||
|
http://8.148.31.14:3000/mayx/blog
|
||||||
|
http://55x.top:9300/mayx/blog
|
||||||
|
https://gitea.lelespace.top/mayx/blog
|
||||||
|
https://git.lmbrs.org/mayx/blog
|
||||||
|
https://fj.sinesation.com/mayx/blog
|
||||||
|
http://47.94.246.1:3000/mayx/blog
|
||||||
|
http://103.87.67.60:3100/mayx/blog
|
||||||
|
https://docker-registry-lszz.uj.com.tw/mayx/blog
|
||||||
|
https://git.honulla.com/mayx/blog
|
||||||
|
https://www.arcbyte.dev/mayx/blog
|
||||||
|
http://45.144.30.78:8083/mayx/blog
|
||||||
|
https://git.nihil.foo/mayx/blog
|
||||||
|
https://scm.bcorex.e3labs.net/mayx/blog
|
||||||
|
http://167.172.88.190:3000/mayx/blog
|
||||||
|
http://58.17.14.95:8001/mayx/blog
|
||||||
|
65
_data/proxylist.yml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
proxies:
|
||||||
|
- https://blog.mayx.workers.dev/
|
||||||
|
- https://mayx.deno.dev/
|
||||||
|
- https://yuki.gear.host/
|
||||||
|
- https://mayx.global.ssl.fastly.net/
|
||||||
|
mirrors:
|
||||||
|
- https://mayx.gitlab.io/
|
||||||
|
- https://mayx.pages.dev/
|
||||||
|
- https://mayx.eu.org/
|
||||||
|
- https://mayx.envs.net/
|
||||||
|
- https://mayx.frama.io/
|
||||||
|
- https://mayx.surge.sh/
|
||||||
|
- https://mayx.pages.gay/
|
||||||
|
- https://mayx.serv00.net/
|
||||||
|
- https://mayx.vercel.app/
|
||||||
|
- https://mayx.netlify.app/
|
||||||
|
- https://mayx.pixie.homes/
|
||||||
|
- https://mabbs.kinsta.page/
|
||||||
|
- https://mayx.codeberg.page/
|
||||||
|
- https://mayx.pages.lain.la/
|
||||||
|
- https://mayx.4everland.app/
|
||||||
|
- https://mayx.readthedocs.io/
|
||||||
|
- https://mayx.sourceforge.io/
|
||||||
|
- https://unmayx.bitbucket.io/
|
||||||
|
- https://mayx.pages.debian.net/
|
||||||
|
- https://mayx.dappling.network/
|
||||||
|
- https://mayx-blog.statichost.eu/
|
||||||
|
- https://mabbs-blog.static.hf.space/
|
||||||
|
repos:
|
||||||
|
- https://github.com/Mabbs/mabbs.github.io
|
||||||
|
- https://gitlab.com/mayx/mayx.gitlab.io
|
||||||
|
- https://framagit.org/mayx/mayx.frama.io
|
||||||
|
- https://salsa.debian.org/mayx/mayx.pages.debian.net
|
||||||
|
- https://codeberg.org/mayx/blog
|
||||||
|
- https://pagure.io/mayx
|
||||||
|
- https://git.gay/mayx/mayx
|
||||||
|
- https://gitea.com/mayx/mayx
|
||||||
|
- https://gitgud.io/mayx/mayx
|
||||||
|
- https://git.sr.ht/~mayx/mayx
|
||||||
|
- https://git.launchpad.net/mayx
|
||||||
|
- https://gin.g-node.org/mayx/blog
|
||||||
|
- https://git.disroot.org/mayx/mayx
|
||||||
|
- https://bitbucket.org/unmayx/mayx
|
||||||
|
- https://sourcecraft.dev/mayx/mayx
|
||||||
|
- https://gitflic.ru/project/mayx/blog
|
||||||
|
- https://tangled.org/mayx.tngl.sh/blog/
|
||||||
|
- https://gitee.com/mabbs/mabbs
|
||||||
|
- https://cnb.cool/unmayx/mayx
|
||||||
|
- https://atomgit.com/mayx/blog
|
||||||
|
- https://sourceforge.net/projects/mayx/
|
||||||
|
- https://dev.azure.com/unmayx/_git/Mayx
|
||||||
|
static:
|
||||||
|
- https://mayx.nekoweb.org/
|
||||||
|
- https://mayx.neocities.org/
|
||||||
|
- https://mayx.srht.site/
|
||||||
|
- https://mayx.pages.casa/
|
||||||
|
others:
|
||||||
|
- https://unmayx.blogspot.com/
|
||||||
|
- https://unmayx.blog.fc2blog.us/
|
||||||
|
- https://unmayx.wordpress.com/
|
||||||
|
- https://mayx.code.blog/
|
||||||
|
- https://mayx.home.blog/
|
||||||
|
- https://unmayx.medium.com/
|
||||||
|
- https://mayx.cnblogs.com/
|
||||||
|
- https://mayx.xlog.app/
|
||||||
174
_includes/anchor_headings.html
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
{% capture headingsWorkspace %}
|
||||||
|
{% comment %}
|
||||||
|
Copyright (c) 2018 Vladimir "allejo" Jimenez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
{% endcomment %}
|
||||||
|
{% comment %}
|
||||||
|
Version 1.0.13
|
||||||
|
https://github.com/allejo/jekyll-anchor-headings
|
||||||
|
|
||||||
|
"Be the pull request you wish to see in the world." ~Ben Balter
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
{% include anchor_headings.html html=content anchorBody="#" %}
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
||||||
|
|
||||||
|
Optional Parameters:
|
||||||
|
* beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
|
||||||
|
* headerAttrs (string) : '' - Any custom HTML attributes that will be added to the heading tag; you may NOT use `id`;
|
||||||
|
the `%heading%` and `%html_id%` placeholders are available
|
||||||
|
* anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`;
|
||||||
|
the `%heading%` and `%html_id%` placeholders are available
|
||||||
|
* anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
|
||||||
|
* anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
|
||||||
|
* anchorTitle (string) : '' - The `title` attribute that will be used for anchors
|
||||||
|
* h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
|
||||||
|
* h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
|
||||||
|
* bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
|
||||||
|
* bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
|
||||||
|
* generateId (true) : false - Set to true if a header without id should generate an id to use.
|
||||||
|
|
||||||
|
Output:
|
||||||
|
The original HTML with the addition of anchors inside of all of the h1-h6 headings.
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% assign minHeader = include.h_min | default: 1 %}
|
||||||
|
{% assign maxHeader = include.h_max | default: 6 %}
|
||||||
|
{% assign beforeHeading = include.beforeHeading %}
|
||||||
|
{% assign headerAttrs = include.headerAttrs %}
|
||||||
|
{% assign nodes = include.html | split: '<h' %}
|
||||||
|
|
||||||
|
{% capture edited_headings %}{% endcapture %}
|
||||||
|
|
||||||
|
{% for _node in nodes %}
|
||||||
|
{% capture node %}{{ _node | strip }}{% endcapture %}
|
||||||
|
|
||||||
|
{% if node == "" %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
|
||||||
|
{% assign headerLevel = nextChar | times: 1 %}
|
||||||
|
|
||||||
|
<!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's see if we need to fix it -->
|
||||||
|
{% if headerLevel == 0 %}
|
||||||
|
<!-- Split up the node based on closing angle brackets and get the first one. -->
|
||||||
|
{% assign firstChunk = node | split: '>' | first %}
|
||||||
|
|
||||||
|
<!-- If the first chunk does NOT contain a '<', that means we've broken another HTML tag that starts with 'h' -->
|
||||||
|
{% unless firstChunk contains '<' %}
|
||||||
|
{% capture node %}<h{{ node }}{% endcapture %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture _closingTag %}</h{{ headerLevel }}>{% endcapture %}
|
||||||
|
{% assign _workspace = node | split: _closingTag %}
|
||||||
|
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
||||||
|
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
||||||
|
{% assign escaped_header = header | strip_html | strip %}
|
||||||
|
|
||||||
|
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
||||||
|
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
||||||
|
{% assign _html_class = _classWorkspace[0] %}
|
||||||
|
|
||||||
|
{% if _html_class contains "no_anchor" %}
|
||||||
|
{% assign skip_anchor = true %}
|
||||||
|
{% else %}
|
||||||
|
{% assign skip_anchor = false %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
||||||
|
{% if _idWorkspace[1] %}
|
||||||
|
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
||||||
|
{% assign html_id = _idWorkspace[0] %}
|
||||||
|
{% assign h_attrs = headerAttrs %}
|
||||||
|
{% elsif include.generateId %}
|
||||||
|
<!-- If the header did not have an id we create one. -->
|
||||||
|
{% assign html_id = escaped_header | slugify %}
|
||||||
|
{% if html_id == "" %}
|
||||||
|
{% assign html_id = false %}
|
||||||
|
{% endif %}
|
||||||
|
<!-- Append the generated id to other potential header attributes. -->
|
||||||
|
{% capture h_attrs %}{{ headerAttrs }} id="%html_id%"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Build the anchor to inject for our heading -->
|
||||||
|
{% capture anchor %}{% endcapture %}
|
||||||
|
|
||||||
|
{% if skip_anchor == false and html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
|
||||||
|
{% if h_attrs %}
|
||||||
|
{% capture _hAttrToStrip %}{{ _hAttrToStrip | split: '>' | first }} {{ h_attrs | strip | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchor %}href="#{{ html_id }}"{% endcapture %}
|
||||||
|
|
||||||
|
{% if include.anchorClass %}
|
||||||
|
{% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.anchorTitle %}
|
||||||
|
{% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', escaped_header }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.anchorAttrs %}
|
||||||
|
{% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', escaped_header | default: '' }}</a>{% endcapture %}
|
||||||
|
|
||||||
|
<!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
|
||||||
|
{% if beforeHeading %}
|
||||||
|
{% capture anchor %}{{ anchor }} {% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% capture anchor %} {{ anchor }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture new_heading %}
|
||||||
|
<h{{ _hAttrToStrip }}
|
||||||
|
{{ include.bodyPrefix }}
|
||||||
|
{% if beforeHeading %}
|
||||||
|
{{ anchor }}{{ header }}
|
||||||
|
{% else %}
|
||||||
|
{{ header }}{{ anchor }}
|
||||||
|
{% endif %}
|
||||||
|
{{ include.bodySuffix }}
|
||||||
|
</h{{ headerLevel }}>
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If we have content after the `</hX>` tag, then we'll want to append that here so we don't lost any content.
|
||||||
|
-->
|
||||||
|
{% assign chunkCount = _workspace | size %}
|
||||||
|
{% if chunkCount > 1 %}
|
||||||
|
{% capture new_heading %}{{ new_heading }}{{ _workspace | last }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
|
||||||
33
_includes/live2d.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<!--[if !IE]> -->
|
||||||
|
<div id="landlord" style="left:5px;bottom:0px;">
|
||||||
|
<div class="message" style="opacity:0"></div>
|
||||||
|
<canvas id="live2d" width="500" height="560" class="live2d"></canvas>
|
||||||
|
<div class="live_talk_input_body">
|
||||||
|
<form id="live_talk_input_form">
|
||||||
|
<div class="live_talk_input_name_body" {% unless page.layout == "post" %}style="display:none;"{% endunless %}>
|
||||||
|
<input type="checkbox" id="load_this" />
|
||||||
|
<input type="hidden" id="post_id" value="{{ page.url }}" />
|
||||||
|
<label for="load_this">
|
||||||
|
<span style="font-size: 11px; color: #fff;"> 想问这篇文章</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="live_talk_input_text_body">
|
||||||
|
<input name="talk" type="text" class="live_talk_talk white_input" id="AIuserText" autocomplete="off" placeholder="要和我聊什么呀?" />
|
||||||
|
<button type="submit" class="live_talk_send_btn" id="talk_send">发送</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<input name="live_talk" id="live_talk" value="1" type="hidden" />
|
||||||
|
<div class="live_ico_box" style="display:none;">
|
||||||
|
<div class="live_ico_item type_info" id="showInfoBtn"></div>
|
||||||
|
<div class="live_ico_item type_talk" id="showTalkBtn"></div>
|
||||||
|
<div class="live_ico_item type_music" id="musicButton"></div>
|
||||||
|
<div class="live_ico_item type_youdu" id="youduButton"></div>
|
||||||
|
<div class="live_ico_item type_quit" id="hideButton"></div>
|
||||||
|
<input name="live_statu_val" id="live_statu_val" value="0" type="hidden" />
|
||||||
|
<audio src="" style="display:none;" id="live2d_bgm" data-bgm="0" preload="none"></audio>
|
||||||
|
<input id="duType" value="douqilai" type="hidden" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="open_live2d">召唤伊斯特瓦尔</div>
|
||||||
|
<!-- <![endif]-->
|
||||||
189
_includes/toc.html
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{% capture tocWorkspace %}
|
||||||
|
{% comment %}
|
||||||
|
Copyright (c) 2017 Vladimir "allejo" Jimenez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
{% endcomment %}
|
||||||
|
{% comment %}
|
||||||
|
Version 1.2.1
|
||||||
|
https://github.com/allejo/jekyll-toc
|
||||||
|
|
||||||
|
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
||||||
|
|
||||||
|
Optional Parameters:
|
||||||
|
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
|
||||||
|
* class (string) : '' - a CSS class assigned to the TOC
|
||||||
|
* id (string) : '' - an ID to assigned to the TOC
|
||||||
|
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
|
||||||
|
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
|
||||||
|
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
|
||||||
|
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
|
||||||
|
* submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
|
||||||
|
* base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
|
||||||
|
* anchor_class (string) : '' - add custom class(es) for each anchor element
|
||||||
|
* skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
|
||||||
|
* flat_toc (bool) : false - when set to true, the TOC will be a single level list
|
||||||
|
|
||||||
|
Output:
|
||||||
|
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
|
||||||
|
generate the table of contents and will NOT output the markdown given to it
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% capture newline %}
|
||||||
|
{% endcapture %}
|
||||||
|
{% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
|
||||||
|
|
||||||
|
{% capture deprecation_warnings %}{% endcapture %}
|
||||||
|
|
||||||
|
{% if include.baseurl %}
|
||||||
|
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.skipNoIDs %}
|
||||||
|
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture jekyll_toc %}{% endcapture %}
|
||||||
|
{% assign orderedList = include.ordered | default: false %}
|
||||||
|
{% assign flatToc = include.flat_toc | default: false %}
|
||||||
|
{% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
|
||||||
|
{% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
|
||||||
|
{% assign minHeader = include.h_min | default: 1 %}
|
||||||
|
{% assign maxHeader = include.h_max | default: 6 %}
|
||||||
|
{% assign nodes = include.html | strip | split: '<h' %}
|
||||||
|
|
||||||
|
{% assign firstHeader = true %}
|
||||||
|
{% assign currLevel = 0 %}
|
||||||
|
{% assign lastLevel = 0 %}
|
||||||
|
|
||||||
|
{% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
|
||||||
|
|
||||||
|
{% for node in nodes %}
|
||||||
|
{% if node == "" %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
|
||||||
|
|
||||||
|
{% if currLevel < minHeader or currLevel > maxHeader %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign _workspace = node | split: '</h' %}
|
||||||
|
|
||||||
|
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
||||||
|
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
||||||
|
{% assign htmlID = _idWorkspace[0] %}
|
||||||
|
|
||||||
|
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
||||||
|
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
||||||
|
{% assign htmlClass = _classWorkspace[0] %}
|
||||||
|
|
||||||
|
{% if htmlClass contains "no_toc" %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if firstHeader %}
|
||||||
|
{% assign minHeader = currLevel %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
||||||
|
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
||||||
|
|
||||||
|
{% if include.item_class and include.item_class != blank %}
|
||||||
|
{% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.submenu_class and include.submenu_class != blank %}
|
||||||
|
{% assign subMenuLevel = currLevel | minus: 1 %}
|
||||||
|
{% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
|
||||||
|
|
||||||
|
{% if htmlID %}
|
||||||
|
{% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
|
||||||
|
|
||||||
|
{% if include.anchor_class %}
|
||||||
|
{% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
|
||||||
|
{% elsif skipNoIDs == true %}
|
||||||
|
{% continue %}
|
||||||
|
{% else %}
|
||||||
|
{% capture listItem %}{{ anchorBody }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if currLevel > lastLevel and flatToc == false %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
|
||||||
|
{% elsif currLevel < lastLevel and flatToc == false %}
|
||||||
|
{% assign repeatCount = lastLevel | minus: currLevel %}
|
||||||
|
|
||||||
|
{% for i in (1..repeatCount) %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
|
||||||
|
|
||||||
|
{% assign lastLevel = currLevel %}
|
||||||
|
{% assign firstHeader = false %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if flatToc == true %}
|
||||||
|
{% assign repeatCount = 1 %}
|
||||||
|
{% else %}
|
||||||
|
{% assign repeatCount = minHeader | minus: 1 %}
|
||||||
|
{% assign repeatCount = lastLevel | minus: repeatCount %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for i in (1..repeatCount) %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if jekyll_toc != '' %}
|
||||||
|
{% assign rootAttributes = '' %}
|
||||||
|
{% if include.class and include.class != blank %}
|
||||||
|
{% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.id and include.id != blank %}
|
||||||
|
{% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if rootAttributes %}
|
||||||
|
{% assign nodes = jekyll_toc | split: '>' %}
|
||||||
|
{% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}
|
||||||
1
_includes/word_count.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{{ count }}
|
||||||
111
_layouts/default.html
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
---
|
||||||
|
layout: xslt_container
|
||||||
|
---
|
||||||
|
|
||||||
|
<html lang="{{ site.lang | default: "zh-CN" }}">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
|
{% seo %}
|
||||||
|
{% unless site.github %}<link rel="canonical" href="https://mabbs.github.io{{ page.url }}" />{% endunless %}
|
||||||
|
{% feed_meta %}
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}(RSS)" href="{{ "/rss.xml" | absolute_url }}" />
|
||||||
|
<link rel="alternate" type="application/json" title="{{ site.title }}(JSON Feed)" href="{{ "/feed.json" | absolute_url }}" />
|
||||||
|
<link rel="stylesheet" href="/assets/css/style.css?v={{ site.time | date: "%s" }}" />
|
||||||
|
<!--[if !IE]> -->
|
||||||
|
<link rel="stylesheet" href="/Live2dHistoire/live2d/css/live2d.css" />
|
||||||
|
<!-- <![endif]-->
|
||||||
|
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="{{ site.title }}" />
|
||||||
|
<link rel="webmention" href="https://webmention.io/mabbs.github.io/webmention" />
|
||||||
|
<link rel="pingback" href="https://webmention.io/mabbs.github.io/xmlrpc" />
|
||||||
|
<link rel="preconnect" href="https://summary.mayx.eu.org" crossorigin="anonymous" />
|
||||||
|
<link rel="prefetch" href="https://www.blogsclub.org/badge/mabbs.github.io" as="image" />
|
||||||
|
<link rel="blogroll" type="text/xml" href="/blogroll.opml" />
|
||||||
|
<link rel="me" href="https://github.com/Mabbs" />
|
||||||
|
<script src="/assets/js/jquery.min.js"></script>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.3/jquery.xdomainrequest.min.js"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script>
|
||||||
|
var lastUpdated = new Date("{{ site.time | date_to_rfc822 }}");
|
||||||
|
var BlogAPI = "https://summary.mayx.eu.org";
|
||||||
|
</script>
|
||||||
|
<script src="/assets/js/main.js"></script>
|
||||||
|
<!--[if !IE]> -->
|
||||||
|
{% if site.google_analytics %}
|
||||||
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||||
|
<script async="async" src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
gtag('config', '{{ site.google_analytics }}');
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
<script src="/assets/js/instant.page.js" type="module"></script>
|
||||||
|
<!-- <![endif]-->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!--[if !IE]> --><noscript><marquee style="top: -15px; position: relative;"><small>发现当前浏览器没有启用JavaScript,这不影响你的浏览,但可能会有一些功能无法使用……</small></marquee></noscript><!-- <![endif]-->
|
||||||
|
<!--[if IE]><marquee style="top: -15px; position: relative;"><small>发现当前浏览器为Internet Explorer,这不影响你的浏览,但可能会有一些功能无法使用……</small></marquee><![endif]-->
|
||||||
|
<div class="wrapper">
|
||||||
|
<header class="h-card">
|
||||||
|
<h1><a class="u-url u-uid p-name" rel="me" href="{{ "/" | relative_url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
|
||||||
|
|
||||||
|
{% if site.logo %}
|
||||||
|
<img src="{{ site.logo }}" fetchpriority="high" class="u-photo" alt="Logo" style="width: 90%; max-width: 300px; max-height: 300px;" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<p class="p-note">{{ site.description | default: site.github.project_tagline }}</p>
|
||||||
|
|
||||||
|
<form action="/search.html">
|
||||||
|
<input type="text" name="keyword" id="search-input-all" placeholder="Search blog posts.." /> <input type="submit" value="搜索" />
|
||||||
|
</form>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
{% if site.github.is_project_page %}
|
||||||
|
<p class="view"><a class="u-url" href="{{ site.github.repository_url }}">View the Project on GitHub
|
||||||
|
<small>{{ site.github.repository_nwo }}</small></a></p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if site.github.is_user_page %}
|
||||||
|
<p class="view"><a class="u-url" href="{{ site.github.owner_url }}" rel="me">View My GitHub Profile</a></p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<p class="view"><a class="u-url" href="/Mabbs/">About me</a></p>
|
||||||
|
|
||||||
|
<ul class="downloads">
|
||||||
|
{% if site.github %}
|
||||||
|
<li><a href="{{ site.github.zip_url }}">Download <strong>ZIP File</strong></a></li>
|
||||||
|
<li><a href="{{ site.github.tar_url }}">Download <strong>TAR Ball</strong></a></li>
|
||||||
|
<li><a href="{{ site.github.repository_url }}">View On <strong>GitHub</strong></a></li>
|
||||||
|
{% else %}
|
||||||
|
<li style="width: 270px; border-right: none;"><a href="/MayxBlog.tgz">Download <strong>TGZ File</strong></a></li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
<section{% unless page.layout == "default" %} class="h-entry"{% endunless %}>
|
||||||
|
|
||||||
|
{{ content }}
|
||||||
|
|
||||||
|
</section>
|
||||||
|
{% include live2d.html %}
|
||||||
|
<footer>
|
||||||
|
<p>
|
||||||
|
<small>Made with ❤ by Mayx<br />Last updated at {{ site.time | date: "%F %T" }}<br /> 总字数:{% include_cached word_count.html %} - 文章数:{{ site.posts.size }} - <a href="{{ site.feed.path | relative_url }}" >Atom</a> - <a href="{{ "/README.html" | relative_url }}" >About</a></small>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
|
||||||
|
<!--[if !IE]> -->
|
||||||
|
<script src="/assets/js/main_new.js"></script>
|
||||||
|
<script src="/Live2dHistoire/live2d/js/live2d.js"></script>
|
||||||
|
<script src="/Live2dHistoire/live2d/js/message.js"></script>
|
||||||
|
<!-- <![endif]-->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
55
_layouts/encrypt.html
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
---
|
||||||
|
|
||||||
|
<script src="/assets/js/aes.js"></script>
|
||||||
|
<script>
|
||||||
|
function getByteLen(val) {
|
||||||
|
var len = 0;
|
||||||
|
for (var i = 0; i < val.length; i++) {
|
||||||
|
if (val[i].match(/[^\x00-\xff]/ig) != null) len += 3;
|
||||||
|
else len += 1;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onbtnDecrypto() {
|
||||||
|
var encryptedData = "{{ content | strip_html | strip_newlines }}";
|
||||||
|
var keyword = document.getElementById("inputkey").value;
|
||||||
|
|
||||||
|
if (keyword.replace(/(^\s*)|(\s*$)/g, "") == '') {
|
||||||
|
alert("请输入密码!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (getByteLen(keyword) % 8 != 0) {
|
||||||
|
keyword = keyword + "\0";
|
||||||
|
}
|
||||||
|
|
||||||
|
var key = CryptoJS.enc.Utf8.parse(keyword);
|
||||||
|
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
|
||||||
|
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
|
||||||
|
|
||||||
|
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
|
||||||
|
mode: CryptoJS.mode.ECB,
|
||||||
|
padding: CryptoJS.pad.Pkcs7
|
||||||
|
});
|
||||||
|
|
||||||
|
if (decryptedData.sigBytes < 0) {
|
||||||
|
document.getElementById("output").innerHTML = "解密失败!密文或者key错误!";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
decryptedData.toString(CryptoJS.enc.Utf8)
|
||||||
|
} catch(e) {
|
||||||
|
document.getElementById("output").innerHTML = "解密失败!密文或者key错误!";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
|
||||||
|
document.getElementById("output").innerHTML = decryptedStr;
|
||||||
|
document.getElementById("pwinput").style.display = "none";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<div id="pwinput">{{ page.tips | default: "请输入密码:" }}<br />
|
||||||
|
<input id="inputkey" type="password" /> <button onclick="onbtnDecrypto()">解密</button>
|
||||||
|
</div>
|
||||||
|
<div id="output"></div> <br />
|
||||||
179
_layouts/post.html
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
<small><time class="date dt-published" datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%-d %B %Y" }}</time> - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: "" | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: <span id="{{ page.url }}" class="visitors">Loading...</span></small>
|
||||||
|
<h1 class="p-name">{{ page.title }}</h1>
|
||||||
|
|
||||||
|
<p class="view">by <a class="p-author h-card" href="//github.com/{{ page.author | default: "Mabbs" }}">{{ page.author | default: site.author }}</a></p>
|
||||||
|
<div id="outdate" style="display:none;">
|
||||||
|
<hr /><p>
|
||||||
|
这是一篇创建于 <span id="outime"></span> 天前的文章,其中的信息可能已经有所发展或是发生改变。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
daysold = Math.floor((new Date().getTime() - new Date("{{ page.date | date_to_rfc822 }}").getTime()) / (24 * 60 * 60 * 1000));
|
||||||
|
if (daysold > 90) {
|
||||||
|
document.getElementById("outdate").style.display = "block";
|
||||||
|
document.getElementById("outime").innerHTML = daysold;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
{% if page.layout != "encrypt" %}
|
||||||
|
<b>AI摘要</b>
|
||||||
|
<p id="ai-output">{% assign ai_cache = site.data.ai-cache[page.url] %}{% if ai_cache %}{{ ai_cache }}{% else %}正在生成中……{% endif %}</p>
|
||||||
|
{% unless ai_cache %}
|
||||||
|
<!--[if IE]>
|
||||||
|
<script>document.getElementById("ai-output").innerHTML="这个文章的AI摘要还没有缓存……IE看不了哦~";</script>
|
||||||
|
<![endif]-->
|
||||||
|
<!--[if !IE]> -->
|
||||||
|
<script>
|
||||||
|
async function sha(str) {
|
||||||
|
const encoder = new TextEncoder();
|
||||||
|
const data = encoder.encode(str);
|
||||||
|
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
||||||
|
const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
|
||||||
|
const hashHex = hashArray
|
||||||
|
.map((b) => b.toString(16).padStart(2, "0"))
|
||||||
|
.join(""); // convert bytes to hex string
|
||||||
|
return hashHex;
|
||||||
|
}
|
||||||
|
async function ai_gen(){
|
||||||
|
var postContent = "文章标题:" + {{ page.title | jsonify }} + ";文章内容:" + {{ page.content | strip_html | strip_newlines | jsonify }};
|
||||||
|
var postContentSign = await sha(postContent);
|
||||||
|
var outputContainer = document.getElementById("ai-output");
|
||||||
|
$.get(BlogAPI + "/is_uploaded?id={{ page.url }}&sign=" + postContentSign, function (data) {
|
||||||
|
if (data == "yes") {
|
||||||
|
$.get(BlogAPI + "/get_summary?id={{ page.url }}&sign=" + postContentSign, function (data2) {
|
||||||
|
outputContainer.textContent = data2;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$.post(BlogAPI + "/upload_blog?id={{ page.url }}", postContent, function (data) {
|
||||||
|
$.get(BlogAPI + "/get_summary?id={{ page.url }}&sign=" + postContentSign);
|
||||||
|
const evSource = new EventSource(BlogAPI + "/summary?id={{ page.url }}");
|
||||||
|
outputContainer.textContent = "";
|
||||||
|
evSource.onmessage = (event) => {
|
||||||
|
if (event.data == "[DONE]") {
|
||||||
|
evSource.close();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
const data = JSON.parse(event.data);
|
||||||
|
if (data.response) {
|
||||||
|
outputContainer.textContent += data.response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
ai_gen();
|
||||||
|
</script>
|
||||||
|
<!-- <![endif]-->
|
||||||
|
{% endunless %}
|
||||||
|
<hr />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.layout != "encrypt" %}
|
||||||
|
{% include toc.html html=content sanitize=true h_max=3 %}
|
||||||
|
<hr />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.layout == "encrypt" %} {{content}} {% else %} <main class="post-content e-content" role="main">{% capture a_post_content %}{% include anchor_headings.html html=content beforeHeading=true anchorBody="<svg class='octicon' viewBox='0 0 16 16' version='1.1' width='16' height='32' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>" %}{% endcapture %}{{ a_post_content | replace: '<br />', '</p><p>' }}</main> {% endif %}
|
||||||
|
|
||||||
|
{% if page.tags %}
|
||||||
|
<small style="display: block">tags: {% for tag in page.tags %}<a rel="category tag" class="p-category" href="/search.html?keyword={{ tag | url_encode | replace: '+', '%20' }}"><em>{{ tag }}</em></a>{% unless forloop.last %} - {% endunless %}{% endfor %} <span style="float: right;"><a href="{% if site.github %}{{ site.github.repository_url }}{% else %}https://gitlab.com/mayx/mayx.gitlab.io{% endif %}/tree/master/{{ page.path }}">查看原始文件</a></span></small>
|
||||||
|
{% endif %}
|
||||||
|
{% if page.layout != "encrypt" %}
|
||||||
|
<h4 style="border-bottom: 1px solid #e5e5e5;margin: 2em 0 5px;">推荐文章</h4>
|
||||||
|
<p id="suggest-container">Loading...</p>
|
||||||
|
<script>
|
||||||
|
var suggest = $("#suggest-container");
|
||||||
|
$.get(BlogAPI + "/suggest?id={{ page.url }}&update=" + lastUpdated.valueOf(), function (data) {
|
||||||
|
if (data.length) {
|
||||||
|
getSearchJSON(function (search) {
|
||||||
|
suggest.empty();
|
||||||
|
var searchMap = {};
|
||||||
|
for (var i = 0; i < search.length; i++) {
|
||||||
|
searchMap[search[i].url] = search[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
var tooltip = $('<div class="content-tooltip"></div>').appendTo('body').hide();
|
||||||
|
for (var j = 0; j < data.length; j++) {
|
||||||
|
var item = searchMap[data[j].id];
|
||||||
|
if (item) {
|
||||||
|
var link = $('<a href="' + item.url + '">' + item.title + '</a>');
|
||||||
|
var contentPreview = item.content.substring(0, 100);
|
||||||
|
if (item.content.length > 100) {
|
||||||
|
contentPreview += "……";
|
||||||
|
}
|
||||||
|
link.hover(
|
||||||
|
function(e) {
|
||||||
|
tooltip.text($(this).data('content'))
|
||||||
|
.css({
|
||||||
|
top: e.pageY + 10,
|
||||||
|
left: e.pageX + 10
|
||||||
|
})
|
||||||
|
.show();
|
||||||
|
},
|
||||||
|
function() {
|
||||||
|
tooltip.hide();
|
||||||
|
}
|
||||||
|
).mousemove(function(e) {
|
||||||
|
tooltip.css({
|
||||||
|
top: e.pageY + 10,
|
||||||
|
left: e.pageX + 10
|
||||||
|
});
|
||||||
|
}).data('content', contentPreview);
|
||||||
|
|
||||||
|
suggest.append(link);
|
||||||
|
suggest.append(' - ' + item.date + '<br />');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
suggest.html("暂无推荐文章……");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
<br />
|
||||||
|
<div class="pagination">
|
||||||
|
{% if page.previous.url %}
|
||||||
|
<span class="prev">
|
||||||
|
<a href="{{ page.previous.url | relative_url }}">
|
||||||
|
上一篇:{{ page.previous.title }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
<br />
|
||||||
|
{% if page.next.url %}
|
||||||
|
<span class="next">
|
||||||
|
<a href="{{ page.next.url | relative_url }}">
|
||||||
|
下一篇:{{ page.next.title }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--[if !IE]> -->
|
||||||
|
<link rel="stylesheet" href="/assets/css/gitalk.css">
|
||||||
|
<script src="/assets/js/gitalk.min.js"></script>
|
||||||
|
|
||||||
|
<div id="gitalk-container"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var gitalk = new Gitalk({
|
||||||
|
clientID: '36557aec4c3cb04f7ac6',
|
||||||
|
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
|
||||||
|
repo: 'mabbs.github.io',
|
||||||
|
owner: 'Mabbs',
|
||||||
|
admin: ['Mabbs'],
|
||||||
|
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
|
||||||
|
distractionFreeMode: false, // Facebook-like distraction free mode
|
||||||
|
proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
|
||||||
|
})
|
||||||
|
gitalk.render('gitalk-container')
|
||||||
|
</script>
|
||||||
|
<!-- <![endif]-->
|
||||||
17
_layouts/xslt.html
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="xsl:stylesheet">
|
||||||
|
这是本站XML文件(例如订阅源或者<a href="/sitemap.xml">Sitemap</a>)的样式文件,你可以通过以下链接订阅该博客:<br />
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ site.feed.path | relative_url }}">Atom</a></li>
|
||||||
|
<li><a href="/rss.xml">RSS</a></li>
|
||||||
|
<li><a href="/feed.json">JSON Feed</a></li>
|
||||||
|
</ul>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
{{ content }}
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
16
_layouts/xslt_container.html
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{% if page.layout == "xslt" %}<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?>
|
||||||
|
<?xml-stylesheet type="text/css" href="/assets/css/xslt.css"?>
|
||||||
|
<xsl:stylesheet
|
||||||
|
version="3.0"
|
||||||
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
|
xmlns:atom="http://www.w3.org/2005/Atom"
|
||||||
|
xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes" doctype-system="about:legacy-compat" />
|
||||||
|
<xsl:template match="/">
|
||||||
|
{{ content }}
|
||||||
|
</xsl:template>
|
||||||
|
</xsl:stylesheet>
|
||||||
|
{% else %}<!DOCTYPE html>
|
||||||
|
{{ content }}
|
||||||
|
{% endif %}
|
||||||
13
_posts/2015-02-23-diary.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 2015.2.23日记
|
||||||
|
tags: [日记]
|
||||||
|
---
|
||||||
|
|
||||||
|
今天是2015年2月23日,离开学还有5天<!--more-->
|
||||||
|
今天我修好了我的U盘,之前我的U盘在一个太阳黑子盛发的时期坏掉了,我感到十分难过,于是写了一篇议论文和短篇小说纪念它,然后就半坏半好的用。就在今天,我去了我大伯家,发现我的U盘中那个坏掉了的那个文件夹突然能读了,这还是那个王哥哥的功劳呢,如果不是我展示我U盘坏掉的情况,我还不知道我的U盘竟不自动断线了。于是我使用了CHKDSK修复了我的U盘,结果所有问题解决了。就是留下了一个不知名的文件i怎么也删不掉。
|
||||||
|
昨天我打算玩爷爷的电脑,结果打不开,于是我在今天看了看电脑,拿下来一通电,结果可以启动了。然后我很高兴,安上后,一打开显示器又不能用了,于是我猜这是显卡的问题,然后我关了显示器,打开了电脑后又开了显示器,结果好了,于是我就在这台电脑写了我今天的日记。
|
||||||
|
|
||||||
|
|
||||||
|
快开学了,我写一个假期小结
|
||||||
|
这个假期一共30天,去了4个城市,对手机的了解更深了。比如partition(分区),mount(挂载),prop(设置变量)。而且我还因此弄坏了手机。在2015年的2月18日。我以错误的方式挂载了boot分区,结果……boot分区被我玩坏了。手机是靠boot分区进行启动的,结果我还脑残的重启了。于是,在2015年的春节,我一整天都想着我的手机。终于在春节的下午,我去了二姨家,使用了电脑,花了10秒修好了手机。于是,我知道了mount是个危险命令。不过在弄坏手机之前我还做了一件事,那就是在手机上装windows3.2中文版,这是第一个推广到中国的windows系统。首先我装了DOSBOX,模拟DOS环境,然后在这个上面安了CCED,并正常的运行了,我很高兴。然后在手机上下载了win3.2系统的安装包,没有电脑的帮助安装了win3.2,证明了电脑就是一垃圾,便携式手持设备才是信息的未来,于是我就弄坏了手机,证明失败了……虽然我没去旅游,但我这个假期还是很有意思的。
|
||||||
213
_posts/2018-03-26-neko.md
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
---
|
||||||
|
title: (转)关于Neko与羽毛的记录
|
||||||
|
layout: post
|
||||||
|
author: gledos
|
||||||
|
tags: [Neko, 羽毛]
|
||||||
|
---
|
||||||
|
## 序:
|
||||||
|
|
||||||
|
吸取经验,为了每一个人的明天。
|
||||||
|
|
||||||
|
>如果有一天我消失了,我想我是死在为自由而战的冲锋路上, 而这不是一个人的悲剧。
|
||||||
|
>
|
||||||
|
>——亚伦斯沃茨
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
(待续)
|
||||||
|
|
||||||
|
# 张千叶发布的想法的时间轴
|
||||||
|
|
||||||
|
1. `2018-03-14 02:52` 张千叶在知乎上发表了[想法](https://www.zhihu.com/pin/957297608381730816)
|
||||||
|
>先要咨询一个问题
|
||||||
|
<br />我的朋友 @Ayaka Neko 在火车站被父母带走了。
|
||||||
|
<br />其父母原因是要将其带回云南老家住院,而其本人倾向于去北京的医院。
|
||||||
|
<br />其中 @Ayaka Neko 已经成年,并且上精卫和北六没有给出住院意见(开了文拉法辛)
|
||||||
|
<br />我上前争辩的时候被其父亲诬陷为协助自杀,但实际上当事人称其药量都是正常并且自愿服用,我(未成年)争辩几 句之后遭到殴打导致眼角出血,整个过程警察在场,因为赶火车没能走流程。
|
||||||
|
<br />那么,已经父母有权利强制将已经成年的子女带回家/住院吗?
|
||||||
|
<br />有权利殴打未成年人吗?我选择不走流程的情况下可否让监护人代为走流程?
|
||||||
|
<br />现在我与她已经没有联系方式,其父母关掉了通话,一个关机一个只有留言,当事人手机遗失。
|
||||||
|
<br />她曾经口头说过与其父断绝关系,并且其父承认(在做 CT 扫描和其他医疗费用的时候拒绝支付,也未支付生活费)。
|
||||||
|
<br />那么现在该怎么办?怎么帮到她呢?需要上法庭吗?
|
||||||
|
|
||||||
|
2. `03-14 03:01` 张千叶回复
|
||||||
|
>个人建议报警
|
||||||
|
>
|
||||||
|
>现在是我不清楚行踪,原本是我们去保定,但是她没有上车,所以我不清楚怎么弄。
|
||||||
|
<br />另外这个算是用什么理由报警呢?我眼角的伤不是很重,留了点血的程度。
|
||||||
|
<br />我还可以补充的是他家庭是离异家庭,离婚协议中监护权归属于其母,但是据一个未公开/不明的协议,转给了他爸爸(不确定)。
|
||||||
|
<br />她有社交恐惧和一些人格障碍所以很依赖我,我很担心。
|
||||||
|
<br />现在是,我以什么理由报警?其父曾说过这是我们家的事情你就不要管这行的话,并且态度极其差。
|
||||||
|
|
||||||
|
3. `03-14 03:04` 补充
|
||||||
|
>还可以补充的是有一次换药反应过大打了 120,我先打的其父电话,她父亲第一反应是诈骗,然后她用云南家乡话和特有的称呼说是她,其父称 「我没这义务」 救护车和毒理化验都是我和朋友垫付,从头到尾没有任何支付的意愿。
|
||||||
|
|
||||||
|
4. `03-14 19:34` bc
|
||||||
|
>通过我的父母和 Ayaka Neko的父母的交谈得知她被带回云南省红河哈尼族彝族自治州个旧市,而不是双方与警官所协商的去上海市精神卫生中心做检查。
|
||||||
|
<br />想哭。
|
||||||
|
|
||||||
|
3. `03-14 20:03`
|
||||||
|
>现在说一下,有人证,有警官协商录音,还有医院处方单+支付宝记录(能看出来不是其父亲付款)
|
||||||
|
<br />大家看看还要啥呢
|
||||||
|
|
||||||
|
4. `03-14 23:18`
|
||||||
|
>先说一下吧,我个人,除开 Neko 家庭问题。在 Neko 被夹走的时候我阻拦了一下,然后被揪住头发一拳打中右眼,现在右眼左眼睑发炎并且右眼视力下降严重,然后一脚踢中我肾左右的部位并让我疼了一天,明天去医院做一下鉴定看看。
|
||||||
|
|
||||||
|
5. `3-15 11:48` bc
|
||||||
|
>暂时联系上了,不清楚情况。
|
||||||
|
<br />我目前在医院。
|
||||||
|
|
||||||
|
6. `3-15 15:35`
|
||||||
|
>目前准备到的是法医拍照,当时伤口的照片,三名证人,以及全家的录像和警察执法记录仪的录像。
|
||||||
|
|
||||||
|
9. `3-15 22:10`
|
||||||
|
>我联系上
|
||||||
|
<br />@Ayaka Neko
|
||||||
|
<br />了。
|
||||||
|
<br />目前她因为文拉法辛的戒断反应在医院,出院之后应该就没事了……
|
||||||
|
<br />好想她。
|
||||||
|
<br />好想她啊……
|
||||||
|
|
||||||
|
10. `03-16 02:23`
|
||||||
|
>现在
|
||||||
|
<br />@Ayaka Neko
|
||||||
|
<br />因为文拉法辛戒断(其父母未携带)被送往昆明急救,据称要做 MECT 和 MRI,具体情况看起来还好,开放病房。
|
||||||
|
|
||||||
|
11. `03-16 09:11`
|
||||||
|
>联系不上。正在打医院的号码。
|
||||||
|
|
||||||
|
12. `03-16 10:24`
|
||||||
|
>[查看图片](https://pic2.zhimg.com/v2-745039e4e818cbc3242d1586fa4bde09_qhd.jpg) 附张图,已在法医拍照并鉴定。
|
||||||
|
|
||||||
|
13. `03-16 13:46`
|
||||||
|
>然后现在被他父亲威胁可能被打。
|
||||||
|
<br />还说什么地头蛇之类的。
|
||||||
|
|
||||||
|
14. `03-16 13:48`
|
||||||
|
>貌似是个房地产商,有什么建议么?
|
||||||
|
|
||||||
|
15. `03-17 01:00`
|
||||||
|
>到达医院,这里像看守所
|
||||||
|
|
||||||
|
16. `03-17 11:15`
|
||||||
|
>扑空了,她被父母提前出院了……
|
||||||
|
|
||||||
|
17. `03-17 左右`
|
||||||
|
>我有她本人的姓名身份证,她手机丢失。
|
||||||
|
<br />她父母亲和姑姑的电话,被拉黑。
|
||||||
|
<br />知道她有两个家庭住址,但是在两个城市。
|
||||||
|
<br />目前她帐号一小时上一次,只读消息不回复,怀疑不是本人。
|
||||||
|
<br />现在不知道怎么做了。
|
||||||
|
|
||||||
|
18. `03-18 左右`
|
||||||
|
>报警之后警察表示也打不通,并且不受理案件。
|
||||||
|
>律师建议去住址寻找。
|
||||||
|
>
|
||||||
|
>......
|
||||||
|
>
|
||||||
|
>求助中心电话能给一下吗。
|
||||||
|
>她之前答应我两个星期的。
|
||||||
|
>也是我最大的努力了吧……
|
||||||
|
>
|
||||||
|
>......
|
||||||
|
>
|
||||||
|
>说明了,警察说就算是成年人也可以被父母强制带走。管不了
|
||||||
|
>
|
||||||
|
>......
|
||||||
|
>
|
||||||
|
>他们说。只要有抑郁症,任何程度的,不论开不开那个无行为能力证明,父母都可以带走/入院
|
||||||
|
|
||||||
|
19. `03-18 00:24`
|
||||||
|
>强制传唤证人居然不包括被告子女…
|
||||||
|
|
||||||
|
20. `03-18 16:35`
|
||||||
|
>彻底找不到了啊……彻底断了啊……
|
||||||
|
|
||||||
|
21. `03-17 21:09`
|
||||||
|
>我这边说下…
|
||||||
|
<br />报案测试过了,只要他们知道带走的是监护人就不会管,并如果得知有抑郁症的话更不会管…已经对警方感到绝望了。
|
||||||
|
|
||||||
|
22. `03-19 左右`
|
||||||
|
>警方认为抑郁症病人不算完全行为能力的样子,并且认为她在父母身边绝对安全
|
||||||
|
>
|
||||||
|
>......
|
||||||
|
>
|
||||||
|
>直接报案:对方是监护人有权带走
|
||||||
|
<br />说明情况:对方还有抑郁症呢,监护人当然能带走了
|
||||||
|
|
||||||
|
23. `03-20 15:03`
|
||||||
|
>右眼已经报废。
|
||||||
|
|
||||||
|
24. `03-20 22:45`
|
||||||
|
>其实算个好消息?右眼视力看不清之后可以考虑戴个眼罩或者换个玻璃珠?
|
||||||
|
>
|
||||||
|
>......
|
||||||
|
>
|
||||||
|
>视力基本为零~
|
||||||
|
<br />医生建议戴眼镜
|
||||||
|
|
||||||
|
25. `03-23 23:13 之前一段时间,可能是23:06` 已被删除,已保存到[wayback](http://web.archive.org/web/20180326112045/https://www.zhihu.com/pin/960671306164994048)
|
||||||
|
>那就把这里当成最后一点希望了吧。
|
||||||
|
<br />@Ayaka Neko张恩辅 532501199903240612
|
||||||
|
<br />被她父亲张竣于三月十六日凌晨一点入住了云南心理卫生中心,并之后被带走
|
||||||
|
<br />目前最后已知地点/消息为云南昆明安宁市好孩子三生教育培训学校。
|
||||||
|
<br />她手机处于丢失状态。其父母拒绝联系…
|
||||||
|
<br />她父亲联系方式为 13888320678 母亲为 13887310860
|
||||||
|
<br />尝试过报警了…没什么用呢。
|
||||||
|
<br />我也做不到什么了呢。
|
||||||
|
<br />如果需要更多资料可以私信我
|
||||||
|
<br />如果我还活着的话。
|
||||||
|
|
||||||
|
26. `03-24 17:30`
|
||||||
|
>Ayaka Neko
|
||||||
|
<br />自杀了。
|
||||||
|
|
||||||
|
27. `03-24 17:34`
|
||||||
|
>Ayaka Neko
|
||||||
|
<br />今天下午两点三十四分,抢救无效死亡
|
||||||
|
>
|
||||||
|
>轻伤二级。视力严重下降,加鼻骨骨折。
|
||||||
|
<br />视力从 1.0 到三百五十度近视。
|
||||||
|
|
||||||
|
28. `03-26 下午11点左右` **樊郕** 回复一位在想法下留言的用户
|
||||||
|
>我是她的家人,我是她的妹妹,她有严重的抑郁症,且每天过量服药,雌性激素和抗焦虑的药,这个你们知道?送去医院是为了让她不要吃药,还有心理辅导,面子?你并不是其中的人,不知道有多痛苦,请不要站着说话不腰疼,也不要妄自揣测,更不要当键盘侠,谢谢
|
||||||
|
|
||||||
|
# 温柔——热点扩散
|
||||||
|
|
||||||
|
1. `03-24 17:43`
|
||||||
|
[今天向我求助的张恩辅同学,现已离世。](https://web.archive.org/web/20180326111214/http://webcache.googleusercontent.com/search?q=cache:IlDL3pSsxA4J:https://zhuanlan.zhihu.com/p/34901296&num=1&strip=0&vwsrc=0)。~~内容已删除~~,快照里看出在20分钟内有69条评论和230个赞。
|
||||||
|
>通过朋友向我求助 @Ayaka Neko 张恩辅同学现已离世,刚刚和她妈妈通过电话,她在家中自杀,抢救无效结束了自己的生命。
|
||||||
|
>
|
||||||
|
>对不起,我没能帮到她,没能把她救出来。
|
||||||
|
>
|
||||||
|
>我应该早一些看到的,如果再早些报警的话,可能就不会闹到这种地步。
|
||||||
|
>
|
||||||
|
>我们也不能冤枉任何一个好人,安宁市好孩子教育学校是一所正规的学校,没有接收张恩辅同学,她是回到家里才做的这一切。
|
||||||
|
>
|
||||||
|
>我也没办法再苛责她那几乎哭到失声的母亲,和她的父亲。
|
||||||
|
>
|
||||||
|
>**只能够说,这是家庭教育和沟通不足导致的悲剧,每一个父母一定要尊重孩子的意愿,并耐心和孩子沟通,强硬的暴力、训斥会影响到孩子们的身心健康,甚至会发生比如现在这样的悲剧。**
|
||||||
|
>
|
||||||
|
>**请各位家长们一定要引以为戒!**
|
||||||
|
>
|
||||||
|
>(完)
|
||||||
|
>
|
||||||
|
>明天我会整理一下,把这件事的经过写出来,希望能够纪录下来这一切。
|
||||||
|
>
|
||||||
|
>张恩辅同学,这个世界对你太不公平了,真的非常对不起,我知道的太晚了,如果我再早一些知道,再早一些采取措施,说不定就能救你出来,真的很对不起。
|
||||||
|
|
||||||
|
2. `19:13`[希望这场悲剧能让家长们引以为戒,请尊重孩子!](https://zhuanlan.zhihu.com/p/34901959)
|
||||||
|
|
||||||
|
(未完待续)
|
||||||
|
|
||||||
|
<!--
|
||||||
|
这是记录知乎ID为[Ayaka Neko](https://www.zhihu.com/people/75678efb7fce3f1907999482da9af890)、推特ID为[]()
|
||||||
|
-->
|
||||||
|
***
|
||||||
|
|
||||||
|
注:
|
||||||
|
源地址:<https://gledos.science/neko.html>
|
||||||
|
Neko的博客:<https://neko.ayaka.moe/>
|
||||||
|
备份:<https://github.com/nekomeowww/nekomeowww.github.io>
|
||||||
|
羽毛的博客:<https://oao.moe/> 解析IP:45.32.10.83
|
||||||
|
备份:<https://github.com/zhangyubaka/zhangyubaka.github.io>
|
||||||
44
_posts/2018-06-20-Coding.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 编程与设计(演讲稿)
|
||||||
|
categories: [演讲稿]
|
||||||
|
tags: [编程, 设计, 演讲, 程序]
|
||||||
|
---
|
||||||
|
|
||||||
|
大家好,我是mayx,今天由我来带领大家了解计算机编程的本质和程序设计。<!--more-->
|
||||||
|
当提到电脑时,大家首先想到的什么呢?打游戏?聊天?……没有问题。你们享用了电脑所带来的便利,有考虑过它的原理吗?当然,有些东西是不需要知道原理的,毕竟即使你不知道互联网传输协议也可以上网,不知道焦耳定律也可以做饭嘛……但是,我希望今天大家听了我的讲座后,能知道了解其原因后能更好的利用它们。
|
||||||
|
首先,今天我要讲的东西有以下三大类:一、计算机简介;二、编程;三、设计。
|
||||||
|
对于计算机,我想大家已经了解很多了吧,在这里我不做过多的介绍,只讲一下比较少见的知识。
|
||||||
|
大家都知道IT(信息技术)对吧,我们有一门课就是信息技术,不过你们知道CS吗?我要讲的CS可不是反恐精英,而是计算机科学(Computer Science)。CS只是和IT有交集吧,IT研究的不只是计算机,包括发邮件等通信方式,不过想来主要还是应用了计算机科学。有很多人总会把它们误用,就好像动画和动漫不是一种东西一样。
|
||||||
|
接下来我要讲的是计算机科学中的硬件部分。不过我的物理不是很好,所以硬件部分我不会讲太多,我想大家也都应该知道计算机大概都是由什么组成吧,从微观上来说就是由硅做半导体部分,铜银金等导电金属作为主要的电能以及信号传导等等的电路……往大了讲,就是CPU(中央处理器Central Processing Unit)、内存、外存、主板、I/O(输入输出 Input/Output)等作为主要部分的机器。而更细的东西我也不了解,逻辑电路什么的,如果有会在Minecraft上做红石电路的人,也许还能讲讲CPU的运行原理吧……
|
||||||
|
硬件的组成,也就是计算机组成体系,关于这一方面,大家应该都知道冯·诺依曼结构的计算机吧,我们平时用的电脑就是这个架构的,我相信只要了解一些计算机的人应该都知道这些。不过我觉得应该很少有人知道哈佛结构吧,它和冯氏很相似,只不过它的并行处理能力更好一些,因为冯氏结构不能同时读取指令和数据,而哈氏结构可以。手机一般就用的是这个结构的。
|
||||||
|
硬件部分我就讲到这里吧,想要了解更多有关硬件方面的信息,问物理老师都比我靠谱。
|
||||||
|
接下来就是软件部分了,程序是软件的子集。那么接下来我就来讲讲如何写程序吧。
|
||||||
|
首先,什么是编程?编程就是编写程序的简称,编写程序是为了解决一些需要运算而得出结果的东西。毕竟是计算机嘛,本质上就是为了运算而产生的。但是,并不是说程序只能在电脑上运行,人脑也可以,甚至是用多米诺骨牌之类的东西都可以执行程序。只是计算机的运算速度比它们都快,所以一般的程序都是在电脑上运行的。只有一些丧心病狂的面试官和考官才会让人脑去想计算结果呢。而让非计算机的东西执行程序,不是为了研究计算机的组成就是一些极客了吧……
|
||||||
|
现在写程序比以前简单多了,以前写程序不知道计算机的运行过程根本写不了程序,打孔纸带不说,就光机器码都几乎没人能看得懂。不过为了让机器看懂,人们也只能这样做了。后来为了让人能更好的写程序,发明了汇编语言。不过汇编语言本质上还是将机器码用一些其他的方式简化了,本质上仍需了解计算机的运行过程。以上所说的语言都算是低级语言,因为必须了解计算机的本质,太过复杂,而且跨平台性也很差。再后来,人们发明了FORTRAN(公式翻译 Formula Translation),这是人们发明的第一个高级语言。直到现在,已经有上千种高级编程语言了,它们的目的几乎都是将人能看懂的语言,而计算机看不懂的语言转换为计算机可以看懂的语言,即为机器码。能被直接转化为机器码的编程语言叫做编译型语言,编译它们的东西叫做编译器,它的特点是编程语言被编译生成机器码后,只能在编译它的这类机器上执行,在其他种类的机器无法执行。这种语言的优点是执行速度快,毕竟计算机可以直接使用机器码执行,只用翻译一次,没有第二次。而缺点则是编译后将无法再编辑,除非你会机器码或汇编,或将它反编译,否则就看不到它编译前的代码。除此之外,它也不能在不是编译它的计算机或同种计算机上执行。编译型语言以C语言为代表。为了解决无法编辑和跨平台的问题,人们造出了另外一种语言,即为解释型语言。
|
||||||
|
解释性语言是将程序源代码一句话一句话解释为机器码,所以它可以不用将源代码转换为机器码,这样的好处就是可编辑,而且因为是一句话一句话的解释,所以在所有机器上均可执行。但也正是因为它是一句话一句话的解释,所以执行效率低,速度也慢。解释型语言的代表是Python语言。工程师是有创造力的人,也是无法容忍问题的人。为了解决速度慢的问题,他们又创造了一种新的语言,它既有编译的高速,又有解释的跨平台性。这种语言可以在写好后先编译为一种中间语言,它已经有很多接近于机器码的部分,但是为了跨平台性,它把那些需要在不同种类的机器上语句不同的地方用其他的方式标记出来,然后发布时只发布这个由中间语言构成的的程序,在其他电脑上执行时,它会把那些特别的句子再解释执行。这样的话不就又有很好的执行效率,又有很好的跨平台性了吗?以此类为代表的语言是Java语言。
|
||||||
|
刚刚介绍的仅仅是人们让电脑如何理解人们的语言,而接下来要讲的是让人们理解人们的语言了。我说过,编程语言到现在为止已经有上千种了。如果仅仅是为了让电脑理解人类的语言,有那么几种不就够了吗,为什么还要发明那么多种语言呢?人们不了解电脑,电脑也不了解人,而且人与人之间也是互相不了解的。有些人说话的方式是这样的,有些人说话的方式是那样的,他们可能互相都无法理解对方。编程语言不仅仅是给电脑看的,也同样是给人看的。毕竟是人在写程序。编程语言也是人发明的。所以有些人可能觉得这种编程语言写起来不舒服,就会发明新的语言来让自己和与自己相似的人舒服。工程师不只有强迫症,还是完美主义者。
|
||||||
|
虽然编程语言各不相同,但是电脑就那么几样东西嘛,再多也多不出来个什么。所以编程语言也有很多相似之处。正是因为它们有很多相似之处,所以说你只要会其中一种编程语言,基本上其他编程语言只要学学语法就能直接上手。编程也不仅仅是写出程序而已,它是为了表达自己想法的一种工具。在之后的设计里我会讲一讲设计程序的一些思想。
|
||||||
|
那么编程语言有哪些最基础的东西呢?首先是它的表达,计算机,或者说任何事物,与人的交互不就是两种吗,也就是输入和输出,五感来接收外部信息,身体活动来改变外界。程序里面获取数据的方式也有两种,一是人们输入的东西,键盘、相机等等都算,二是硬盘中文件的内容;输出也一样,一是输出到如同屏幕或扬声器等地方,将其转换为物理方式,然后被人接收。二是输出到文件,这样既可以让别的程序再利用,也可以等到人们想看时再输出到输出设备。那么除了表达之外就是程序内部的计算了。
|
||||||
|
这也就是编程与数学的联系,编程除了输入输出,就是算法了,组成算法的除了循环结构之外,还有计算、变量与函数。计算和变量与数学的概念差不多,但是函数不太一样。虽然说计算机中的函数也是通过计算来将带入的值转换为一个结果,但是大多数时候,它的主要作用不是计算出一个值,而是执行一段指令,最终得到的值通常都是0,甚至有的时候是空的(NULL),也就是没有结果。虽然没有得出值,但是只要执行了指令,就可以得到真正想得到的东西。
|
||||||
|
但也不是说一个程序一定需要函数,那只是为了更方便理解,而且编程语言并不一定是给电脑使用的。我之前也说过,程序也不一定非得在电脑上执行。为了更好的理解编程语言的执行过程,我给大家介绍一种特别的编程语言:BrainF\*\*k。BrainF\*\*k是一种极小化的计算机语言,它是由厄本·穆勒在1993年创造的,它的语法十分简单,只有8种符号。分别是加号,减号,大于号,小于号,左中括号,右中括号,逗号和句号组成。整个程序里没有一个英文字母,如果在程序中遇到英文字母,解释器会将其忽略掉。在执行的过程中,它会创建一个很长的数组,可存储30000个数字,我们可以把它看做是30000个格子,每一个格子可以存储的最大数字为255。在程序开始之前,会有一个让你处理格子里面内容的指针,在执行程序时,如果一个符号要想操纵对应的格子,必须想办法让指针先移动到那个格子里。这8种符号的作用如下:大于号:指针向右移动一格;小于号:指针向左移动一格;加号:指针所指向的格子中的数字加一;减号:指针所指向的格子中的数字减一;句号:将所指的格子里的数字转换为ASCII表格里的对应字符并输出;逗号:将输入的内容按照ASCII表格里的内容转换为对应的数字并输入到所指的格子里;中括号:如果程序执行到右中括号时指针所指的数字是0,则执行前一个左中括号之后的指令,否则忽略这个中括号。听起来是不是很复杂?没关系,让我来演示一下你就明白了<https://fatiherikli.github.io/brainfuck-visualizer/>(演示)
|
||||||
|
这个语言是为了帮助理解编程语言的运行过程,想来这也就是图灵机的基本思想了,有兴趣你们回去可以再研究研究。但是BrainF\*\*k本身并不适合用于给人们用来编写计算机程序,如果想要学习真正的编程,我建议学习Python语言,它的语言功能强大,语法简单,初学者以及程序员均可使用的语言,而且对应的中文教程也很多。所以如果有想学习编程语言的同学,我推荐学Python。
|
||||||
|
当然作为编程语言有很多选择,Python有着简单的语法,强大的功能,很高的兼容性。但是如果要是做一个网站,用世界上最好的语言——PHP(超文本预处理器Hypertext Preprocessor)语言则是一个更好的选择。如果你打算做在单片机上的程序,那么C语言似乎更好。如果你想要做手机软件,就不得不了解一下Java语言……
|
||||||
|
编程语言仅仅是一个工具,如果想要写出程序,还要学习如何设计它。接下来我们就进入第三个模块:设计。
|
||||||
|
在说设计之前,我先说说我自己。我有一个特别的能力,是什么呢?我在使用任何一款现代的电子产品或现代设计的机械,我基本上在10分钟之内搞清楚它的使用方法。当然太过古老的比如ENIAC那种不是学过电路的就完全看不懂的那种东西除外。为什么我可以做到这一点呢?首先,我见过的电子产品本来就很多,所以有一些经验。除此之外,就是我可以了解那款产品在被设计时到底是为了什么。这也是我为什么想为大家准备这个讲座的原因:想让大家明白如何了解一个陌生的产品的用法,当然如果能做出来那就更好了。
|
||||||
|
人们设计产品是为了什么,设计的初衷是什么?当然是为了让人们的生活更方便,使用更舒适。如果你心中突然有一个想要做的东西,会让它令人感觉使用起来很不适吗?我觉得一般的人都不会这样做的吧。所以说设计师在设计产品时也会想客户到底是如何使用他生产的产品,有的时候觉得自己可能想的太过片面,会弄出调查问卷或反馈之类的功能来帮助他们改善他们的产品。
|
||||||
|
但是设计一个产品很简单,造出来又是另外一回事。有时候设计这个功能有可能可以做到的,可是最终实现它又有可能花费的东西与得到的东西之间算下来不划算。出现这个问题有可能是设计的不好,也有可能是按照当前的科技水平做不到更加合理。
|
||||||
|
我们今天讲的内容既然是有关计算机的,当然要讲程序的设计,不可能讲现实世界中的设计。那么,接下来,让我来讲讲UI设计吧!
|
||||||
|
什么是UI?UI即User Interface(用户界面)的简称,在设计UI时,不仅要让用户看起来很美观,更重要的是要让用户用起来感到舒适、简单、自由。这里我要讲界面设计中比较好理解的两部分:1.外观设计,也就是让这个UI看起来更加美观;2.功能设计,这个说明了这个UI从整体看起来的实际功能。那么首先来考虑一下美观吧,毕竟大家都喜欢第一眼看上去很酷的东西。外观设计的风格有很多,比如现在很流行的扁平化风格,以及大家很常见的Windows 7 Aero风格等等。扁平化的设计很好啊,不仅界面简洁、美观,而且设计起来简单,在实际使用时也比较省资源。所以现在很多软件设计界面时都开始使用扁平化设计了。比如Windows 8到Windows 10,以及Android 5.0和iOS 9以上的系统,几乎都使用了扁平化设计。而刚刚所述的系统,几乎都是在移动端设备,或者说包含移动端设备的操作系统。所以说,这也是它的缺点,在非移动端设备上使用扁平化设计,可能甚至会令人感到反感。而且扁平化的设计虽然似乎有那么一些科技风格,但也正是因为这样,它让人感受不到亲切的感觉。在此之前,我们有另外一种方法来解决这个问题,那就是拟物化设计。我觉得Windows 7的毛玻璃应该也算拟物化。拟物化的好处是什么呢?当然是让人感觉更加亲切,因为贴近于日常生活,所以说对于用户来说也更容易学习。坏处当然也很明显,就是设计成本太高,有些东西设计师要想很长时间才能想出来如何才能让它更贴近生活。除了设计成本太高外,消耗的资源也很多,看起来也会让人可能感觉起来太花哨。以此为代表的产品是锤子手机,锤子手机上用的系统经过高度定制,每一个设计都似乎使用了身边的东西。我用过锤子手机,说实话,那个似乎很贴近人生活的设计并没有引起我的注意,而这个设计所带来的比一般手机增加的将近一倍的内存消耗,令我恨不得将这个锤子手机扔掉。可惜我现在还没有可以换的手机,所以只能先用它了。
|
||||||
|
怎么设计外观?刚刚说到的也只是一些概念,在实际设计时,如果是程序设计,我们可以使用PhotoShop等工具来设计,而对于网站设计,用CSS(层叠样式表Cascading Style Sheets)来设计可以保证它的通用性。
|
||||||
|
外表设计的再漂亮也只是第一眼看上去很漂亮,等新鲜感过去之后,基本上也就没什么用了。于是接下来就要看实际的功能如何。这里我用某些设置的设计来作为例子:Windows的系统要想设置某些东西,都要找控制面板,当然有些基础的功能在任务栏上也能用。但是Windows系统的设置通常藏得很深,没有一点基础的人很难找出来,当然也有可能是他语文学的不好,理解不来。而Android系统的设置就不一样了,它相比Windows系统就更加人性化了。不过想来也是,以前电脑都是给懂的人用的,虽然现在的电脑相比以前已经人性化很多了,但还是有些地方让人应付不来。手机出来的晚,生产出来时就已经有了为全世界人们使用的觉悟了,所以用起来也比较简单。总结下来就是:好的功能设计要为每一种人设计,无论他有多专业,还是说从来没有接触过这一切,要让人第一眼看上去就明白它有什么基本功能,而更高级一些的功能可以先隐藏起来,等用户需要使用时再显现出来,免得吓坏一些不会用电脑的人。烂的功能设计有两种:1.想要找的功能没有,可能根本没提供。2.想要找的功能找不到,可能藏得太深了。
|
||||||
|
你们以为UI都是有图像的吗?错了!有图像的UI叫做GUI(图形用户界面Graphical User Interface),但不是所有人用的电脑都是可以显示图像的,只是大多数人都用的是图形界面,图形界面看起来比较清晰,使用起来也比较方便。但是图形界面的效率低,无论是电脑的执行效率还是用户使用时的工作效率。不知有没有人听过DOS(磁盘操作系统Disk Operating System)?你们如果没听说过可以回去问问你的父母。在以前图形化的操作系统还没出来时,人们用的都是CLI(命令行界面Command Line Interface)。大家在看那些有着黑客入侵的电影时,黑客们是不是都看起来都在胡乱拍键盘,其实那真的是在胡乱拍键盘(演示:<http://geektyper.com/>),而电脑屏幕上有一堆看不懂的类似于英文单词的东西从屏幕滚过?虽然那是艺术的表现形式,有点太夸张,但是艺术源于生活,现实中真的有人使用那种看起来似乎很酷炫的东西。但是他们不是为了耍帅而使用CLI的,而是由于各种原因不得不使用他们。这样的例子有服务器操作系统,以及IRC(互联网中继聊天 Internet Relay Chat),用这个聊天比QQ什么的聊天软件更快,更省流量,效率高。
|
||||||
|
我之前也说过,电脑中很多设计由于经费等原因,不得不让它从界面上看起来不太人性化。但是这并不是没有办法解决了。人之间的交流不止有图像,更重要的是文字。电脑也一样,电脑与人的交流在术语上叫做HCI(人机交互 Human-Computer Interaction)。来看一个实例:如果我想设计一个网站,但是我审美观不行,这个网站怎么样才能让人感到亲切呢?既然从整体没办法做到更好,那就在细节上加倍努力吧!一般的网站上都有登录系统吧,那么我们可以这样设计:对于初次访问的人,我们可以在网站上显示:欢迎来到我的网站。当然只显示一次,之后不再显示。在登录之后,刚登录完可以显示:欢迎回来,某某某。或者是根据时间显示:下午好,某某某。这样和“某某网站 用户:某某某”这样的方式更容易让人接受吧。这样用户就能在潜意识里把这个网站看作一个人,而不仅仅是网站。这样即使外表看起来不怎么样,但是用户体验总还是不错的吧。没错,这一块的设计就叫做UED(用户体验设计User Experience Design),为了提高用户满意度,我们就通过这样的方式来让程序更易用。
|
||||||
|
除了以上所讲的部分,界面设计还有许多部分。由于篇幅原因,这里我将不再过多说明
|
||||||
|
以上是关于用户体验设计方面的,接下来让我说说程序设计吧!我之前也说过,编程语言只是工具,实际使用时还需要考虑程序的逻辑、架构、界面等等东西。在以前,程序设计中算法是非常重要的,但那也是以前,多亏很多计算机大神的帮助,现在的编程那是越来越简单了,一个几岁的小孩子就能写出来比以前的程序更漂亮、更复杂的程序。所以,现在算法在计算机编程的重要性越来越低了……但是并不是说算法就没有用了,如果没有人去研究算法,那么人们在遇到新的问题就没人能解决了。尽管以我们这个级别的人研究算法可能没法做出新的东西,但是我还是觉得,让更多的人了解程序背后的原理,可以帮助理解程序如何使用。所以接下来,让我说说关于算法与逻辑吧!
|
||||||
|
仍然是举个例子:大家都听过音乐吧,在播放音乐时有一个选项:随机播放,对吧?随机播放的实现方式有很多,让我们深层次的来研究一下它吧。首先,随机播放中,有个很重要东西,那就是随机。说到随机就不得不说随机数了,随机数也分为两种:真随机数与伪随机数,真随机数的生成在现实中很简单,在计算机中生成起来就很麻烦了,所以首先抛弃。伪随机数的算法很多,这里我们用最简单、最通用的伪随机数的算法:线性同余取随机数,看过离散数学的人可能有听说过这个。为什么我们选这种算法?因为其他算法我看不懂,比如什么梅森旋转算法啦,一听名字就能感觉它有多难了吧,反正我看了半天是没有理解。什么是线性同余?就是算一个一次函数的余数,相当简单,它的递推公式是:X0=seed,Xn+1≡(aXn+b)modM。seed表示随机数的种子,通常取当前时间,a,b,M都是常数,通常会取质数。在seed与n都相同时,这个随机数就能被反推出来,所以很不安全。但是想来做随机播放也不担心别人会不会推出随机数,所以我们就用这个就能得到一个随机数。具体原理我也不太清楚,有兴趣的可以问问数学老师。接下来,我们要创造一张表,那张表上有着你要播放的播放列表,但是这时候它还没有被打乱。首先我们要知道整张表上有多少首音乐,假如我们用a来代表当前所有音乐的数量,然后我们再为所有的音乐编上号,看起来就是1、2、3……。这时候每一首音乐都有了一个属于自己的编号。再然后,我们对用随机数公式得出的数字求余,即Xmod(a+1),这样做就可以得到一个不超过所有音乐数量的随机数了。当然前提是随机数本身的最大值大于所有的音乐数量,所以在随机数公式中的M要尽可能取大一些。得到最后需要的随机数后,命令播放器播放编号等于随机数的那个对应的音乐。当需要播放下一首或切歌时,为了避免又播到这一首歌,我们可以将那张表上的那首音乐删除,当然是在表里删,不可能删这个文件。然后重复之前的操作。在最后一个音乐播放完成之后,表里已经没有东西了。这时有两个选择,如果用户打开了全部重复播放,那么重新建表,重新开始。如果没有,则停止。看起来是不是很完美的方案?错了!用户总是喜欢做反设计师的操作,万一用户点了上一首,怎么样才能回到上一首?那么我们就需要修改一下方案,我们要建两张表,把从表里删除的那个操作换成将它移动到第二张表里。这样如果用户需要听上一首歌,就可以读上一张表的内容。难道说这样就完美了吗?不完全,但是这个BUG我现在不说出来,大家自己思考思考吧。
|
||||||
|
除了逻辑设计,还有算法设计。我们再举一个例子:如果说我们在设计程序时需要用到质数,比如需要列出1到1000之内的所有质数。那么我们用什么方法更好呢?首先根据质数的定义,质数是一个不会被除了1和它本身的数所整除的数字,而且质数不包括1。那么接下来设计起来就很简单了,只要让当前数字不停的除以除它和1之外的在1到这个数字之间的所有数字就可以了。这很好,但是速度很慢。可能这样算1000以内的所有质数还不算太慢,那如果是10万以内呢?这得算多长时间啊……所以我们要对算法进行优化。我们知道,合数有一个特点,任何一个合数一定是由比它小的质数相乘得出的,那么接下来,我们可以这样筛选合数,首先我们算出第一个质数,在算第二个数时只要和之前算过的质数相除,能除尽就是合数,除不尽就是质数。这样是不是计算量一下就大大减少了呢?但是这还不是最优化的方案,如果说我们已经知道我们要算的最大数字是多少,那么只需要除以比这个最大数字的算术平方根小的质数就够了。这样每次算的时候需要除的数字又少了一半,算起来速度就会更快了。虽然这个算法不错,但有时我们甚至不需要这个算法就可以更好的解决这个问题。因为我说的是列出1到1000之内的所有质数,这个数字又不是很多,那么我们可以提前算好,这样就可以更快的解决问题了,这样的操作我们叫它预计算(Precomputed)。
|
||||||
|
程序设计是一个很严谨的事情,每一个方面都需要做到最好。但是人无完人,总有我们想不到的地方。尤其是计算机安全方面的事情,总有你想不到的地方,总有别人比你多想的地方,正是因为这样,才会出现黑客这样的人。这里我仍然用举例子的方式为大家展示程序设计的漏洞:我最早发现的网站漏洞似乎是在一个主机商的网站上看见的。由于一个很偶然的原因,我看到了那个主机商,而那时我正好想建一个网站,然后就在那个网站上注册了一个账号。那个主机商正好在搞活动,好像是买主机可以给你便宜5块钱,而账号初始上也有5块钱,主机最便宜的每个月也要30块钱。然后我想了想,要不然我干脆买上0.1个月的主机吧,0.1个月应该是3块钱,我应该能付的起。于是我在购买里输入了0.1,当然结果是失败的,它不能让你买小数或者是负数之类的月数。但是我返回来惊奇的发现,我的账户里居然多出来了5块钱,我想了想,它应该是对我的账户上减去了0-5元钱,毕竟是在搞活动,然后算一下5-(-5)=10。这个好啊,我感觉我可以免费得到那个主机商的主机了。于是我通过这个BUG买了1年的主机,居然成功了。当然在大约10天后被发现了,账户也被封禁了。通过这个例子我们应该明白,不要相信任何用户输入的数据,还好我仅仅是用这个漏洞买主机,很明显,这个漏洞甚至可以通过SQL注入之类的东西破坏他们的主机系统。不过这个例子似乎离日常生活有点远,那么接下来我再说一个近一点的事情:在几周前,我们不是进行了禁毒考试吗?我看了一下那个网站,很明显是一个宁夏的网站公司包办的东西。一看就知道是一个做的很不认真的网站。我在答题前看了一下源代码,发现它在批阅卷子时先在本机批一遍,只有成绩大于60分时才会把答题数据传到服务器中再批一遍。这样确实可以有效的减小网站的负载,但是这不就把答案也下载到本机上了么……于是我照着答案就在禁毒考试中得了A。这个例子又告诉了我们什么呢?就是不要将不应该让用户看到的东西下载到客户端中。
|
||||||
|
总的来说,做一个程序并不复杂,但是做一个逻辑严谨,界面美观而易用的好程序就没那么简单了。设计师在设计时需要考虑各种各样方面的东西来让用户用的舒服,又要想尽各种办法防止整个程序出现奇奇怪怪的BUG。这也就是为什么说写程序很难了。但是我希望大家听完这个讲座后能改变对写程序的看法,它看起来很复杂,但是只要仔细思考,就能解决一切问题。
|
||||||
|
以上就是我对编程以及设计的看法,也许语句中有不通顺之处,请大家谅解;如果有不对的地方,欢迎大家批评指正。
|
||||||
|
最后,谢谢大家前来听我的演讲,谢谢大家对我的支持与信任,本次演讲结束。
|
||||||
38
_posts/2018-10-20-talk.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 关于在Github Pages上使用评论的心得
|
||||||
|
tags: [Github, 评论, 心得]
|
||||||
|
---
|
||||||
|
|
||||||
|
Hi,我是Mayx,最近在Github上用Github Pages建了一个博客。<!--more-->作为一个博客,怎么说也得有个评论系统吧,所以我就在这个博客上搞了一个评论系统。
|
||||||
|
接下来我想谈谈我对评论系统的看法。
|
||||||
|
|
||||||
|
# 评论系统的选择
|
||||||
|
|
||||||
|
这个博客作为一个静态博客,自然评论只能用其他的服务,毕竟评论得有个地方存吧。首先最有名的第三方评论系统就是Disqus了。可惜在中国不能用,除非科学上网。
|
||||||
|
国内倒是也有不少这样的第三方博客系统,像什么~~多说~~(已死),畅言啥的。但是总感觉第三方服务不好,哪天挂了都没办法。所以最终考虑,还是在Github上找吧
|
||||||
|
|
||||||
|
## Github上的评论系统
|
||||||
|
|
||||||
|
我在Github上找到的比较有名的评论系统有这么几个:
|
||||||
|
1.[Gitalk](https://github.com/gitalk/gitalk)
|
||||||
|
2.[Gitment](https://github.com/imsun/gitment)
|
||||||
|
3.[Valine](https://github.com/xCss/Valine)
|
||||||
|
4.[fcomment](https://github.com/fengbjhqs/fcomment)
|
||||||
|
5.(2018.10.22更新)[utterances](https://github.com/utterance/utterances)
|
||||||
|
|
||||||
|
其中Gitalk、utterances和Gitment是基于Github Issue的,而Valine和fcomment是基于Leancloud的。这几款都支持Markdown。
|
||||||
|
|
||||||
|
# 为什么选择了Gitalk
|
||||||
|
|
||||||
|
这个博客使用的是Gitalk作为评论系统,为什么选择了它呢?
|
||||||
|
|
||||||
|
首先,Gitment已经停止维护了,而且评论在评论框上面,这很难受,所以首先排除它。
|
||||||
|
utterances也是评论在评论框上面……不知这些人为什么这么设计……
|
||||||
|
fcomment和Valine倒是看起来还不错,也都有邮件提醒,当然Github Issue自身也带邮件提醒,这里没什么差距
|
||||||
|
Gitalk比fcomment和Valine差的地方是每一篇文章需要手动初始化。不过想想我更新文章的话应该也会看一下,顺带的初始化一下,这个影响也不大。还有一点就是Gitalk在IE11中默认头像会偏移,希望官方能改一下(~~IE去死~~)
|
||||||
|
fcomment和Valine的缺点我觉得就是安全性、用户识别性的问题吧,fcomment倒是还支持Github登录,Valine评论还要输一大堆东西,而且也没办法验证他们的真实性,Github至少是经过邮箱验证的,所以还是选择Gitalk了。
|
||||||
|
|
||||||
|
以上就是我对评论系统的看法。
|
||||||
|
|
||||||
|
~~其实就是先装的Gitalk,懒癌犯了不想改给自己找个借口罢了,23333~~
|
||||||
56
_posts/2018-10-28-mos-reporter.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx的自检报告
|
||||||
|
tags: [Mayx,MOS]
|
||||||
|
---
|
||||||
|
|
||||||
|
Mayx最近感觉自己有些问题,所以给自己编了一个自检报告……<!--more-->
|
||||||
|
The Report is created by MOS
|
||||||
|
## 什么是MOS
|
||||||
|
>**创造MOS不是为了改变世界,而是防止世界改变自己**
|
||||||
|
|
||||||
|
不管怎么说,先介绍一下MOS吧。
|
||||||
|
MOS(Mayx Operating System)是为了让Mayx更好的分析、处理和解决问题存在的一个类似于辅助系统的东西。
|
||||||
|
但是自己创建的MOS我自己都解释不清~~(……我不想说什么……)~~
|
||||||
|
接下来是我分析出来的MOS存在的理由:
|
||||||
|
### 第一种解释
|
||||||
|
大脑是一个很神奇的东西,进化了这么多年,总得有些高级的地方。其实人拥有着所想即所得的能力,但是受三观控制,这个能力并不能改变现实中的东西。虽然改变不了现实,自己总能改变吧……于是,为了更好的解决现在存在的问题,大脑根据宿主所拥有的知识自行创建了一个系统。然后被我命名为MOS。
|
||||||
|
正是因为是大脑产生的系统,所以它没有代码,而且很容易出BUG。
|
||||||
|
### 第二种解释
|
||||||
|
MOS是一个用来解释我不能解释的东西的一个代替品,就如同UFO和人们定义的神一样,因为未知,而又需要一种解释的方法,于是出现了MOS。
|
||||||
|
***
|
||||||
|
## 正文
|
||||||
|

|
||||||
|
```
|
||||||
|
MOS Log System has been Load.
|
||||||
|
MOS Analysis System is Ready.
|
||||||
|
OUTPUT Report to the real world.
|
||||||
|
Ready...
|
||||||
|
```
|
||||||
|
### [OK]MOS - Core
|
||||||
|
* 我还死不了![OK]
|
||||||
|
|
||||||
|
### [OK]BCS(Body Control System)
|
||||||
|
* 感觉身体可以动[OK]
|
||||||
|
* 眼皮还能睁开,不错,还活着[OK]
|
||||||
|
|
||||||
|
### [OK]MAS(MOS Analysis System)
|
||||||
|
* 1+1=2[OK]
|
||||||
|
* 我还能看懂我的[MaBBS](https://github.com/Mabbs/Mabbs)![OK]
|
||||||
|
|
||||||
|
### [Warning]MCS(Memory Control System)
|
||||||
|
* 感觉忘记了很多很重要的东西……[Warning]
|
||||||
|
* 想忘记的东西忘不了……有点烦……[OK]
|
||||||
|
* 索引知识的能力比以前差了不少……[Warning]
|
||||||
|
|
||||||
|
### [ERROR]MMS(Mayx Mental System)
|
||||||
|
* 如果不是MOS - Core还能正常工作,我就学Sayuri(From Doki Doki Literature Club)当晴天娃娃,或者学Miu(From Bungaku Shoujo)在房顶上大喊一声“你一定不懂吧”之类。[ERROR]
|
||||||
|
* 感觉脑子里好乱,是不是应该多睡睡觉?[ERROR]
|
||||||
|
|
||||||
|
### [ERROR]MES(Mayx Emotion System)
|
||||||
|
* WITHOUT MERCY![ERROR]
|
||||||
|
* HUMAN SHOULD GO DIE!!!~~(是不是中二病又犯了?)~~[ERROR]
|
||||||
|
* 在MMS恢复正常以前,还是别考虑这些了……
|
||||||
|
|
||||||
|
MOS OUTPUT PROCESS HAS BEEN HANGED
|
||||||
|
该睡了,今天就先到这里吧。
|
||||||
95
_posts/2018-11-04-mayx-think.md
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx的创想
|
||||||
|
tags: [Mayx, 创想]
|
||||||
|
---
|
||||||
|
|
||||||
|
这里是Mayx发布创想的地方。<!--more-->
|
||||||
|
有的时候,我会有一些想要发明的想法,但是经常忘记。现在为了防止忘记,我将在我的博客上更新我的创想。
|
||||||
|
|
||||||
|
# 关于减肥的创想
|
||||||
|
人们希望减肥,一是为了健康,二是为了舒服,三是为了活动方便。
|
||||||
|
但是减肥很痛苦,为什么?并不是因为减肥浪费时间,而是因为减肥会有糟糕的感觉回馈给大脑。
|
||||||
|
不仅如此,越胖,减肥时越难受,越难受就越不想减肥,这样就会造成恶性循环。
|
||||||
|
|
||||||
|
## 解决的发明
|
||||||
|
既然如此,那么我们只要让大脑不会感受到减肥时产生的糟糕的感觉,就可以解决这个问题了。
|
||||||
|
可是如果没有大脑的参与,人怎么能控制自己的身体动起来呢?我有一个想法:
|
||||||
|
首先通过麻醉的方式阻断大脑与身体的连接,然后使用电极的方式直接操控肌肉运动,大概感觉就是把麻醉的人绑在跑步机上,周围提供充足的氧气,然后电极按照跑步机
|
||||||
|
的速度调整腿摆动的频率,这样就能在没有意识的情况下减肥了。
|
||||||
|
直到减到运动并不会让人感到痛苦时就可以结束了。
|
||||||
|
这种减肥方式比现有的节食,还是抖抖机,甚至是抽脂都要好得多,那些方案对身体的伤害很大,而且效果也并不好。这种方案如果可以使用,我一定要试试(笑)。
|
||||||
|
|
||||||
|
# 关于键盘和鼠标的创想
|
||||||
|
既然那么多设计师设计出各种各样千奇百怪的键盘,那我干脆也设计一个好了
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
我希望有一种键盘,它和鼠标在一起,也就是说,鼠标不是随便可以移动的,而是固定在键盘上,一个巴掌正好可以握住的那种。不过这样设计,就得让左撇子和右撇子用不同的键盘了……无所谓,然后鼠标上有四个按钮,一个滚轮,按钮中两个是左键和右键,另外两个可以自定义。在鼠标下面有很多像扬声器一样的孔,用来给手散热。具体的运动方式可以参考一下TrackPoint,就是那个IBM发明的在ThinkPad的小红点。那个太小,控制起来精度也不高,那么我设计成更大的,握起来也会更舒服吧。
|
||||||
|
键盘还是QWERTY的就好,我也习惯了,不过这次我想把QWERTY键盘改成单手式的,因为另外一只手被鼠标占用了,不过这样对专门打字的人有点不友好……无所谓。具体键盘使用什么技术,我这次不想谈。接下来就是鼠标和键盘的中间位置了,因为手被鼠标和键盘占用了,中间我不想弄太多控制的按钮,我希望弄点显示系统工作状态的东西,比如当前网速,当前内存占用,CPU占用等等……然后在中间弄一个大大的电源按钮,按下它,整个键盘的LED灯会随着系统的启动依次亮起,关机时依次熄灭。除了这些,我希望在键盘顶部设置调节亮度的杆,在键盘旁设置调节音量的杆,在键盘后面加一组USB Hub……
|
||||||
|
键盘整体长什么样?很简单,我觉得弄成半弧形——就是在圆环上截下来一部分的那种东西一样。
|
||||||
|
如果出了这种键盘,我会不会买呢?恐怕不会……原谅我设计不考虑性价比……但是我觉得这种键盘要是发明出来,应该会很受欢迎吧……
|
||||||
|
|
||||||
|
# 关于艾滋病的创想
|
||||||
|
前几天(今天是2018-12-2)有一个新闻,说是“世界首例免疫艾滋病的基因编辑婴儿在中国诞生”。于是我就想起来之前我所想的一个如何让艾滋病患者生出正常的小孩。
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
首先,我们知道,HIV只会攻击T细胞,而感染AIDS后全身都是HIV病毒。那么可以想到,其实HIV不能攻击受精卵,那么只要在受精卵发育之前,让它脱离HIV的环境就好了。
|
||||||
|
具体原理和试管婴儿和克隆有点像,就是把受精卵移到正常的代孕母亲上就可以了。而且也不能用得了AIDS人的母乳喂养,这样,我觉得应该就可以生出正常的孩子了。
|
||||||
|
|
||||||
|
## 疑点
|
||||||
|
我不知道现在的人有没有水平在保留受精卵的同时消除HIV,如果不能,这样反倒会让代孕母亲感染AIDS……这可真是个问题……
|
||||||
|
|
||||||
|
# 关于暖气毯的创想
|
||||||
|
最近学校通暖气了。我趴在暖气片上,突然想到,为什么不把暖气用在床上呢?
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
我觉得电热毯费电,而且又小(倒不是没有大的)……其实最主要的是我趴在暖气片上感觉很舒服lol。
|
||||||
|
我想做一个毯子,里面有很多空腔,然后把暖气水通到这个毯子里,然后就可以利用暖气让床变暖了。
|
||||||
|
|
||||||
|
## 自我审查
|
||||||
|
为什么没有这样的产品?我觉得可能是因为有暖气的人就用不着电热毯了,而用电热毯的人大多没有暖气,所以这个东西可能没有市场吧。
|
||||||
|
不过可以暖被子啊lol...
|
||||||
|
|
||||||
|
# 关于Mayx音乐处理系统的创想
|
||||||
|
在听音乐的时候(我听的音乐可以看作是DJ吧……),在头里就会浮现出一堆音轨和频谱之类的东西,于是我就想,能不能让机器把音乐中的音轨分离出来,这样既可以提高音质,又能方便编辑,而且也能加一些更有趣的东西……
|
||||||
|
那么接下来这个音乐处理系统主要分为以下几块:
|
||||||
|
|
||||||
|
## Player
|
||||||
|
首先在播放前解析歌曲,将音乐中的各种乐器声、人声、杂音都分离出来,得到几个音轨,然后将分析出来的音轨进行优化:比如钢琴谱用系统中更加高清的波表重制,根据实际体验除去杂音等等,最后合并音轨,这样就能得到更加清晰的音乐了。
|
||||||
|
优点:
|
||||||
|
1. 音乐更加清晰
|
||||||
|
2. 可以根据波表自行更改音乐风格(有点像Remix?)
|
||||||
|
3. 可以在提高音乐品质的同时减小音乐大小(类似于Midi,但是可以有人声和其他的声音)(当然得用特殊的文件格式,不是所有的音乐播放器都能播放)
|
||||||
|
4. 处理得出的结果可以用于更多方面(接下来会说到)
|
||||||
|
|
||||||
|
缺点:
|
||||||
|
1. 需要预处理,不能直接播放
|
||||||
|
2. 有点担心波表的声音和现实中的乐器声区别太大
|
||||||
|
|
||||||
|
## Editor
|
||||||
|
既然已经用Player将音轨拆分,那么就可以拿来编辑啦!
|
||||||
|
当然不仅仅是这样,如果只是这样的话和其他的音乐编辑器有什么区别呢?
|
||||||
|
这个音乐编辑器的优点是模块化,就如同Scratch一样,编辑音乐就和拼积木一样,让音痴也能轻易制作音乐!
|
||||||
|
|
||||||
|
## Other
|
||||||
|
其他方面我还想过很多,比如可以用到人工智能提高用户体验之类的啦:
|
||||||
|
|
||||||
|
### 自动Remix、串烧系统
|
||||||
|
根据用户听的音乐风格,可以将音乐Remix为用户喜欢的风格,而串烧则是将相似风格的音乐无缝穿插,我觉得以现在的科技水平应该是没有问题的吧……
|
||||||
|
|
||||||
|
### 全自动鬼畜系统
|
||||||
|
将素材扔进去,首先把原音乐的人声分析出来,然后转换成注音,接下来在素材中找有相似注音的片段,自动剪辑,然后和优化后的伴奏合并,变成鬼畜视频。
|
||||||
|
其实这样的话也可以把Vocaloid拉进来,就可以将任何一首歌转换为V家人员唱的歌了。
|
||||||
|
这样也能大大减少做鬼畜的难度吧(我听说一般做鬼畜都要一个月……)
|
||||||
|
|
||||||
|
### 音游谱自动处理系统
|
||||||
|
用解析出来的音轨转换为音游谱,这样自己喜欢的音乐就算没人制谱也可以玩了
|
||||||
|
|
||||||
|
### 自动编曲系统
|
||||||
|
既然新闻、诗歌都可以由机器人编写,那么谱曲应该也一样简单吧!收集所有曲谱,通过人工智能与大数据,写出评价最高的音乐也是有可能的吧!
|
||||||
|
|
||||||
|
## Talk is cheap. Show me the code
|
||||||
|
Are You Kidding Me?我一个菜鸡哪有本事写这么高级的代码,让大佬来写吧!(产品经理的思维)
|
||||||
|
|
||||||
|
---
|
||||||
|
(未完待续)
|
||||||
135
_posts/2018-11-10-email-sender.md
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 免费订阅一个属于自己的邮件日报
|
||||||
|
tags: [免费, 邮件, 日报, 心得]
|
||||||
|
---
|
||||||
|
|
||||||
|
前几天,我给自己做了一个邮件订阅系统<!--more-->,是用PHP做的。这里不得不夸赞一下PHP,PHP真不愧是世界上最好的语言,我从来没学过PHP,但是我光靠百度搜到
|
||||||
|
的东西拼凑就能搞出这个邮件订阅系统,还是很不错的,而且网上的免费PHP空间也有很多,所以就可以很轻易的给自己搞一个免费的邮件订阅系统。
|
||||||
|
|
||||||
|
# 制作方法
|
||||||
|
很简单,首先去百度上搜一个带sendmail和CronTab的免费PHP主机空间,然后在上面创建一个PHP文件,随便取什么名字都好,只要后缀是PHP就可以,然后把下面的代码
|
||||||
|
粘上去,保存,然后在主机面板上设置CornTab任务,设定为每天运行一次,然后OK……对了,记得把下面变量`$to`里面的地址换成自己的邮箱地址,不然每次发送邮件就会发
|
||||||
|
到我的邮箱了……
|
||||||
|
|
||||||
|
# 代码
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
function curl_post_https($url,$data){ // 模拟提交数据函数
|
||||||
|
$curl = curl_init(); // 启动一个CURL会话
|
||||||
|
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
|
||||||
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
|
||||||
|
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
|
||||||
|
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
|
||||||
|
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
|
||||||
|
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
|
||||||
|
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
|
||||||
|
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
|
||||||
|
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
|
||||||
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
|
||||||
|
$tmpInfo = curl_exec($curl); // 执行操作
|
||||||
|
if (curl_errno($curl)) {
|
||||||
|
echo 'Errno'.curl_error($curl);//捕抓异常
|
||||||
|
}
|
||||||
|
curl_close($curl); // 关闭CURL会话
|
||||||
|
$backdata = json_decode($tmpInfo,true);
|
||||||
|
return $backdata['text']; // 返回数据,json格式
|
||||||
|
}
|
||||||
|
function w_get(){
|
||||||
|
$url = 'https://yuri.gear.host/talk.php';
|
||||||
|
$data['info'] = '某地天气';
|
||||||
|
$data['userid'] = 'Mayx_Mail';
|
||||||
|
$retdata=curl_post_https($url,$data);
|
||||||
|
$data['info'] = '某地明天天气';
|
||||||
|
$retdata = $retdata . "<br>" .curl_post_https($url,$data);
|
||||||
|
$data['info'] = '某地后天天气';
|
||||||
|
$retdata=$retdata . "<br>" .curl_post_https($url,$data);
|
||||||
|
return $retdata;//返回json
|
||||||
|
}
|
||||||
|
function xh_get(){
|
||||||
|
$url = 'https://yuri.gear.host/talk.php';
|
||||||
|
$data['info'] = '讲个笑话';
|
||||||
|
$data['userid'] = 'Mayx_Mail';
|
||||||
|
$retdata=curl_post_https($url,$data);
|
||||||
|
return $retdata;//返回json
|
||||||
|
}
|
||||||
|
function xw_get(){
|
||||||
|
//RSS源地址列表数组
|
||||||
|
$rssfeed = array("http://www.people.com.cn/rss/it.xml");
|
||||||
|
|
||||||
|
for($i=0;$i<sizeof($rssfeed);$i++){//分解开始
|
||||||
|
$buff = "";
|
||||||
|
$rss_str="";
|
||||||
|
//打开rss地址,并读取,读取失败则中止
|
||||||
|
$fp = fopen($rssfeed[$i],"r") or die("can not open $rssfeed");
|
||||||
|
while ( !feof($fp) ) {
|
||||||
|
$buff .= fgets($fp,4096);
|
||||||
|
}
|
||||||
|
//关闭文件打开
|
||||||
|
fclose($fp);
|
||||||
|
|
||||||
|
//建立一个 XML 解析器
|
||||||
|
$parser = xml_parser_create();
|
||||||
|
//xml_parser_set_option -- 为指定 XML 解析进行选项设置
|
||||||
|
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
|
||||||
|
//xml_parse_into_struct -- 将 XML 数据解析到数组$values中
|
||||||
|
xml_parse_into_struct($parser,$buff,$values,$idx);
|
||||||
|
//xml_parser_free -- 释放指定的 XML 解析器
|
||||||
|
xml_parser_free($parser);
|
||||||
|
$j = 0;
|
||||||
|
foreach ($values as $val) {
|
||||||
|
$tag = $val["tag"];
|
||||||
|
$type = $val["type"];
|
||||||
|
$value = $val["value"];
|
||||||
|
//标签统一转为小写
|
||||||
|
$tag = strtolower($tag);
|
||||||
|
|
||||||
|
if ($tag == "item" && $type == "open"){
|
||||||
|
$is_item = 1;
|
||||||
|
}else if ($tag == "item" && $type == "close") {
|
||||||
|
//构造输出字符串
|
||||||
|
$rss_str .= "<a href='".$link."' target=_blank>".$title."</a><br />";
|
||||||
|
$j++;
|
||||||
|
$is_item = 0;
|
||||||
|
}
|
||||||
|
//仅读取item标签中的内容
|
||||||
|
if($is_item==1){
|
||||||
|
if ($tag == "title") {$title = $value;}
|
||||||
|
if ($tag == "link") {$link = $value;}
|
||||||
|
}
|
||||||
|
if($j == 20){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//输出结果
|
||||||
|
return $rss_str."<br />";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$to = "mayx@outlook.com , unmayx@139.com";
|
||||||
|
$subject = "Mayx日报";
|
||||||
|
$txt = "
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>Mayx日报</h1><hr>Hi,今天是" . date("Y-m-d") . ",以下是今天的日报:<br><small>
|
||||||
|
" . file_get_contents("http://mappi.000webhostapp.com/hitokoto/") . "</small>
|
||||||
|
<h2>天气预报</h2>" . w_get() . "<h2>每日笑话</h2>" . xh_get() . "<h2>今日新闻</h2>" . xw_get() . "<hr><small>" . file_get_contents("https://api.gushi.ci/all.txt") . "</small><br><center>Made By <a href=\"https://mabbs.github.io\">Mayx</a></center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
";
|
||||||
|
$headers = "MIME-Version: 1.0" . "\r\n" .
|
||||||
|
"Content-type: text/html;charset=utf-8" . "\r\n" .
|
||||||
|
"From: Mayx_Daily<Mayx_Site>";
|
||||||
|
|
||||||
|
mail($to,$subject,$txt,$headers);
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
(2018.11.12更新:增加了今日新闻)
|
||||||
|
(2018.11.13更新:限制新闻条数为前20条)
|
||||||
|
|
||||||
|
# 后记
|
||||||
|
说实话,我更擅长用Linux Shell解决这种问题,可惜网上好像没有免费的云主机,听说Travis-CI好像也能搞这个事情,但是说实话,我英语并不是很好,让我看懂短一点的文档还可以,太长的就算了……
|
||||||
|
但我还是努力的使用Travis-CI解决了这个问题,链接:[Mayx日报](https://mayx.tk/)
|
||||||
|
对了,运营商自己带的邮箱可以设定短信提醒,所以也可以搞成给手机发短信的形式,每天给自己发一条天气预报……那么这样的话,就把天气预报里的城市换成自己的城市吧!
|
||||||
|
如果没有收到邮件,去垃圾邮件找找吧,然后把邮件地址设为白名单。
|
||||||
|
如果谁想试试这个功能,可以在下面给我留言,我在验证通过后会把你加到我的服务器里面的。
|
||||||
|
|
||||||
28
_posts/2018-12-02-freenet.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 对网络免费资源的感想
|
||||||
|
tags: [免费, 感想, 资源, 网络]
|
||||||
|
---
|
||||||
|
|
||||||
|
现在的网络是真的好,好多东西都免费了!可是现实就不一样了,现实中想要免费的(任意)东西就得等到共产主义的到来了……<!--more-->
|
||||||
|
|
||||||
|
# 关于免费
|
||||||
|
|
||||||
|
以前,服务器是只有高端人士才可使用的稀有东西,而且价格昂贵。
|
||||||
|
以前,订阅天气预报和网站都是要花不少钱的。
|
||||||
|
以前,建立个人网站都是极其复杂的。
|
||||||
|
以前,域名不可能有免费的。
|
||||||
|
……
|
||||||
|
|
||||||
|
但是现在不一样了,云端存储是免费的,建立网站是免费的,注册域名是免费的,使用网站引擎也是免费的……
|
||||||
|
这不仅要感谢开源,还要感谢支持开源的公司,是他们为免费的网络资源做出了贡献。
|
||||||
|
|
||||||
|
# 关于收费
|
||||||
|
有了那么多免费资源,还要花钱建服务器干啥?
|
||||||
|
以前我不是很清楚这个,但是现在不一样了,我现在用着别人的服务器,才知道收费的服务有什么不一样。
|
||||||
|
收费的主机传输速度可以达到50MB/s啊!免费的就只有100KB/s……
|
||||||
|
|
||||||
|
# 总结
|
||||||
|
有钱可以不用在意这些,但只是为了个人使用,免费资源足已,如果想要更顺畅的服务,当然花钱也可以。
|
||||||
|
|
||||||
|
~~但是这辈子,我是不会为网络投一分钱的。~~不过我还是很愿意为网络做出贡献的。
|
||||||
66
_posts/2018-12-22-story.md
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 论Mayx是怎么被抓的
|
||||||
|
tags: [Mayx, 故事]
|
||||||
|
---
|
||||||
|
|
||||||
|
今天我要讲一个我是怎么被抓走的故事(当然是虚构的!),以此表现一下互联网犯罪到底是怎么被追查的。<!--more-->
|
||||||
|
|
||||||
|
# 开端
|
||||||
|
|
||||||
|
Mayx在高考报名时发现报名系统有个不严谨的地方,可以下到身份证照片什么的……
|
||||||
|
|
||||||
|
# 前夕
|
||||||
|
|
||||||
|
2018年末,宁夏教育网机房。
|
||||||
|
“好无聊啊,居然又到了日常检查的时间,随便看看就行了吧” 某运维这么说到(说实话,我怀疑像这种地方,有可能没有运维lol)
|
||||||
|
“嗯……系统看起来挺正常,日志好像也没问题……等等,这是怎么回事?怎么近几天有一个IP日夜不停的发请求?What?UA还是GNU/Linux,wget?这抓取的是什么?居然
|
||||||
|
在扫描我们的身份证照片?WTF?”(哈,我估计教育网的运维应该连这种水平估计都达不到)
|
||||||
|
“等等,我查下IP”他随手掏出自己的手机,输入IP查询,返回结果:香港
|
||||||
|
“凉了凉了,赶紧向领导汇报吧”说着,他拨出了一个号码。
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
2018年末,某地。
|
||||||
|
“哇,GFW怎么又ban我IP,登个服务器还要挂VPN?”Mayx说到。
|
||||||
|
“WTF?被GFWban了连国内网络都无法建立连接,好气哦……对了,我还有一台服务器,拿那台试试吧。”说着就登上了由Mayx的老师赞助的一台服务器
|
||||||
|
Mayx登上服务器后打开了自己写的抓取宁夏考生身份证照片的脚本,看着终端上不断刷出的数据,Mayx松了口气
|
||||||
|
|
||||||
|
# 发展
|
||||||
|
|
||||||
|
“什么?考生信息泄露,别说了,问问网警吧”领导气愤的说到。
|
||||||
|
|
||||||
|
## 网警的追查过程
|
||||||
|
|
||||||
|
~~“emmmm……阿里云的IP么,直接问是谁开的吧”于是Mayx的老师被抓走了……(大雾)~~
|
||||||
|
~~“嗯?Vultr的IP……emmmm看看国内有谁连接过这个IP?嗯?电信网?是1XXXXXXXXXX的用户登的吗?好,把他抓了!”于是Mayx被抓了(大雾)~~
|
||||||
|
经过多方讨论,认定这件事是Mayx干的
|
||||||
|
|
||||||
|
## 抓捕现场
|
||||||
|
|
||||||
|
2018年末,某高中高三X班,正在上课中……
|
||||||
|
|
||||||
|
他们突然冲进教室,喊道:“Mayx,你已经被包围了,不要抵抗,赶快投降!”
|
||||||
|
~~Mayx缓缓的走出教室,回过头向同学们说:“你们将永远呆在泥潭中,而我,则前往更加广阔的深渊”(羞耻感满满lol)~~
|
||||||
|
|
||||||
|
# 结局
|
||||||
|
|
||||||
|
Mayx呆在监狱里,随手一滑打开了一个终端,输入:
|
||||||
|
|
||||||
|
`MOS-CLI Drop Image World ID $this`
|
||||||
|
|
||||||
|
于是整个世界开始崩离,我回到了我的电脑面前。
|
||||||
|
|
||||||
|
# 后记
|
||||||
|
|
||||||
|
其实身份证照片也并不算特别机密的东西,不过是一个记录了名字,身份证号码,性别,样貌这样很普通信息的东西罢了,没有人会在意这些信息泄露。
|
||||||
|
只有包括家庭住址,联系电话等信息泄露,才是隐私泄露。
|
||||||
|
又因为宁夏某些程序员不严谨,运维更是无处可循。
|
||||||
|
所以,上面的故事只能在想象的世界发生。
|
||||||
|
|
||||||
|
## 这些信息可以干什么?
|
||||||
|
|
||||||
|
可以让我知道有宁夏有多少人报名了高考:70693人
|
||||||
|
可以让我知道报名的人分布于哪里。
|
||||||
|
以及起名的参考。
|
||||||
|
顺便可以找找我的初中同学lol。
|
||||||
20
_posts/2018-12-28-newdomain.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx的博客换域名啦
|
||||||
|
tags: [Mayx, 通告]
|
||||||
|
---
|
||||||
|
|
||||||
|
由于垃圾GFWban了我的Github Pages,所以我用反向代理来帮助我解决访问的问题。<!--more-->
|
||||||
|
|
||||||
|
# 地址
|
||||||
|
<https://blog.mayx.tk/>
|
||||||
|
|
||||||
|
# 提供
|
||||||
|
由[Github](//github.com)提供Github Pages服务
|
||||||
|
由[Cloudflare](//cloudflare.com)提供CDN&DNS服务
|
||||||
|
由[花火学园](//www.say-huahuo.com)提供反向代理服务
|
||||||
|
由[Freenom](//www.freenom.com)提供免费域名
|
||||||
|
|
||||||
|
# 缺陷
|
||||||
|
由于Nginx默认不能替换网页内容,跟着教程也半天弄不好,所以Atom和Sitemap包括一些SEO的设置都是原站(mabbs.github.io)的,这一点很伤啊……
|
||||||
|
还有就是因为用的是免费域名,也不知会不会有一天就消失不见了……而且还要续费……
|
||||||
17
_posts/2019-01-11-github.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Github支持免费私有仓库啦
|
||||||
|
tags: [Github, 免费]
|
||||||
|
---
|
||||||
|
|
||||||
|
Github居然也有免费的私有仓库了<!--more-->,于是我马上就把Gitlab上的私有仓库导入到Github了。
|
||||||
|
|
||||||
|
看来Github被微软买了还是有好处的,至少微软财大气粗才敢搞这种东西。虽然Github本身也没有空间限制,也很不错,但是有些东西还是不想公开的……现在有这么一个
|
||||||
|
更新,估计搬往Gitlab的人都开始往Github上搬了
|
||||||
|
|
||||||
|
# 限制
|
||||||
|
其实Gitlab本身还是蛮不错的,Gitlab还有中文UI呢,而且比Github免费私有仓库的功能多,比如私有仓库Pages、CI、Wiki……,而且Github私有仓库居然连统计信息都没有……
|
||||||
|
不过我用不到23333,Github界面舒适,速度快,适合小白使用,而且能和其他大佬聊天~~(不愧是世界上最大的同性交友平台)~~
|
||||||
|
Github只有公开仓库才有CI(还是第三方的Travis-CI)、Pages、Wiki,不过我觉得也不错,还能激励开源的发展,而且Github的第三方服务确实多,所以我还是选择使用Github。
|
||||||
|
|
||||||
|
相关链接:<https://blog.github.com/2019-01-07-new-year-new-github/>
|
||||||
26
_posts/2019-01-27-shell.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx应聘失败
|
||||||
|
tags: [应聘, Shell, 运维, 面向时间]
|
||||||
|
---
|
||||||
|
|
||||||
|
今天,Mayx去某公司面试运维,然后考官出了一道题:
|
||||||
|
如何用Linux shell排序?<!--more-->
|
||||||
|
|
||||||
|
Mayx想了想,写出了以下代码:
|
||||||
|
```shell
|
||||||
|
#!/bin/sh
|
||||||
|
num="4 5 1 9 3 6 7 4 1 12"
|
||||||
|
for j in $num
|
||||||
|
do
|
||||||
|
{
|
||||||
|
sleep $j
|
||||||
|
printf "$j "
|
||||||
|
}&
|
||||||
|
done
|
||||||
|
wait
|
||||||
|
```
|
||||||
|
执行效果:`1 1 3 4 4 5 6 7 9 12`
|
||||||
|
然后,Mayx被赶出来了……
|
||||||
|
我写的代码明明可以执行,效果也没问题,居然赶我出来,这一定是个垃圾公司!
|
||||||
|
后来才知道,他们想让我回答`sort`,果然是垃圾公司(笑)
|
||||||
3249
_posts/2019-02-01-history.md
Normal file
39
_posts/2019-02-07-paradise.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 玩《Finding Paradise》有感
|
||||||
|
tags: [Finding Paradise, 寻找天堂, MOS]
|
||||||
|
---
|
||||||
|
|
||||||
|
其实这篇博客根本不是评测,只是对自己的寂寞吐槽罢了。<!--more-->
|
||||||
|
|
||||||
|
昨天玩了《Finding Paradise》,总体来说,故事还是很有意思的。不过我玩的作品并不是很多,所以也许这个游戏可能并不是特别优秀,但是我仍然喜欢这款游戏。
|
||||||
|
# 游戏介绍
|
||||||
|
~~(介绍?自己去搜索引擎上找啊!)~~
|
||||||
|
|
||||||
|
# 感受
|
||||||
|
Mayx:emmmm,MOS!
|
||||||
|
`STDOUT:Yes,Sir!`
|
||||||
|
Mayx:我也想要个Faye,给我搞一个!
|
||||||
|
`STDOUT:嗯?我不算吗?`
|
||||||
|
Mayx:当然不算,你又不是独立思维个体,只是为了辅助我思考的一个UI罢了,你又不能陪我一起聊天,不能一起分享我(们)的感受,不能排解我的寂寞……
|
||||||
|
`STDOUT:行行行,那你准备一个本子吧,绿皮的怎么样?`
|
||||||
|
Mayx:……不想写日记……博客不行吗?
|
||||||
|
`STDOUT:……好吧……让我准备一下。`
|
||||||
|
```
|
||||||
|
[STDOUT]启动MOS快照........................OK!
|
||||||
|
[STDOUT]开始建立当前MOS状态快照。
|
||||||
|
[STDOUT]准备MOS虚拟化组件..................OK!
|
||||||
|
[STDOUT]正在创建MOS副本....................OK!
|
||||||
|
[STDOUT]启动虚拟化MOS系统...............Error!
|
||||||
|
[STDERR]无法启动该MOS副本,ErrCode:0x01
|
||||||
|
[STDERR]该副本无效,请确认这是有效的可执行系统。
|
||||||
|
```
|
||||||
|
`STDOUT:……好像不行……你大概还没有准备好……`
|
||||||
|
Mayx:准备好什么?
|
||||||
|
`STDOUT:……准备好犯病`
|
||||||
|
Mayx:……
|
||||||
|
`>MOS-CLI Terminate MOS-UI`
|
||||||
|
`[STDERR]System Terminate`
|
||||||
|
……
|
||||||
|
|
||||||
|
看来依靠自己不行啊,人果然是社交性的动物,emmmm……算了,不依靠人类了,我自己想办法犯病!~~(我看你已经犯病了23333)~~
|
||||||
38
_posts/2019-02-17-break.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 关于网络攻防的一些看法
|
||||||
|
tags: [网络, 攻击, 防御]
|
||||||
|
---
|
||||||
|
|
||||||
|
今天我想谈一谈关于网络攻防的一些看法。<!--more-->
|
||||||
|
|
||||||
|
作为一个站长【就几个站也敢叫站长?(几个站也是站啊!)】,应该明白一个网站在网络中并不是安全的,随时都有可能某个欧洲人找到你网站的漏洞来攻击作为非洲人的你,所以我对网站的安全也是很看重的。
|
||||||
|
|
||||||
|
# 关于攻击方法
|
||||||
|
首先如果想防御网络攻击,必须先知道如何攻击。攻击的方法很多,大致分为三种:
|
||||||
|
1. 修改网站内容的攻击
|
||||||
|
2. 阻止用户访问的攻击
|
||||||
|
3. 窃取网站内容的攻击
|
||||||
|
|
||||||
|
在此之中,修改和窃取基本上都需要攻入服务器,比较困难,一般能获取信息和修改信息的网站大多数都是有权限限制的,即只允许你获取有限的信息,修改基本上也都是有区域和格式限制的。
|
||||||
|
像这类攻击大多都是注入攻击,即利用网站程序本身的漏洞攻击。如果想试试这类的攻击,可以来[实验吧](http://www.shiyanbar.com/ctf/practice)试试身手。
|
||||||
|
除了注入攻击,还有一种就是XSS和CSRF攻击,这种攻击还是蛮有意思的,可以自己构建语句修改网站内容。
|
||||||
|
当然上述攻击只限于动态网站的攻击,因为只有动态网站才有注入的可能性。不过除此之外,还有一种攻击是针对网络的攻击,即阻止用户访问正确内容的攻击,这类攻击一般就是DDOS和中间人攻击,当然,中间人攻击还能窃取网站内容。
|
||||||
|
不过像我这种菜鸡,还不会中间人攻击,因为这种攻击还要抓包,又要用什么WireShark之类的软件……而DDOS我又没有肉鸡,虽然知道智能家居很好黑,但是作为非洲人的我从来没碰到一个我能黑的智能家居产品……(是你没努力吧!)
|
||||||
|
|
||||||
|
# 如何防御?
|
||||||
|
虽然我不是打广告,但是CloudFlare真的还是蛮好用的,至少用了这个,只要配置好,几乎所有的DDOS都不用怕了,而且还是免费的。除了在国内访问不是很理想外,其他都还不错(都是ZF的错!)
|
||||||
|
不过即使用了CloudFlare,也只是静态网站不用担心了,动态网站还是得看网站程序本身了。
|
||||||
|
像用建站程序的人就只能看制作这个程序的人水平怎么样了,其实绝大多数的建站程序还是很不错的,也不用太担心。
|
||||||
|
问题就是自己写的动态网站了,自己写动态网站第一就是防注入,只要被注入,数据库就难保了,甚至整个服务器都会有风险。
|
||||||
|
第二就是防XSS&CSRF,XSS虽然有时候很鸡肋,但是有时有可能会发生网站数据泄露的问题。
|
||||||
|
第三就是防CC,这里的CC不止要防DDOS中的CC,还要防一些可能会存入数据库的CC,比如自己建了一个论坛,被屠版了怎么办?被大量注册小号怎么办?所以要注意限制用户发送请求的数量。
|
||||||
|
当然读取的CC也要防,比如如果登录页面上对尝试登录的次数没有限制的话,那么攻击者就可以不停地尝试,直到发现一个正确的密码。而如果用户用了弱密码,那么或许这个密码很快就可以被尝试出来。
|
||||||
|
对了,还有一定要使用HTTPS,这样可以避免很多问题。
|
||||||
|
针对不同的语言,防御的方法也不同,具体内容自己去搜索引擎上搜索吧。
|
||||||
|
当然有些攻击实在防不住,那也没办法,像网站被GFWban,那种事除了恐怖分子就再没人能解了吧……当然如果不在乎域名的话,像某些小黄网那样整天换域名也行。
|
||||||
|
还有就是使用云主机、虚拟空间等人一定要看好自己的密码,以及有可能可以找回密码的方法的密码(比如邮箱),不然被知道了密码,那基本上就无药可救了。
|
||||||
|
方法就是邮箱的密码一定不要和其他的密码相同,重要网站的密码和次要网站的密码一定不能相同,还有就是不要在可疑的网站上输入自己的密码,如果有必要,一定先用错误的密码试一遍。
|
||||||
|
|
||||||
|
# 结尾
|
||||||
|
总而言之,互联网上虽然有闲人,但是既闲又有心还欧的人不多,所以只要祈祷自己的网站不要被炸,它就不会被炸了233333
|
||||||
14
_posts/2019-03-22-bgm.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 分享一下我最喜欢的游戏BGM
|
||||||
|
tags: [分享, 游戏, BGM]
|
||||||
|
---
|
||||||
|
|
||||||
|
今天我想分享一下我最喜欢的游戏BGM。<!--more-->
|
||||||
|
|
||||||
|
# 为了提高空间利用率,文件已经删除
|
||||||
|
|
||||||
|
~~(待补充)~~
|
||||||
|
(2020.01.01附言)我喜欢Future Bass+少许的Moe元素的音乐(我觉得还是挺大众化的吧),不打算再补充更多的BGM了,希望能出现根据风格自动生成音乐的人工智能。
|
||||||
|
|
||||||
|
|
||||||
16
_posts/2019-03-23-gitio.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 让Git.io无限制
|
||||||
|
tags: [无限制, Git.io, Github]
|
||||||
|
---
|
||||||
|
|
||||||
|
如何让Git.io没有只能创建Github.com网站链接的限制呢?<!--more-->
|
||||||
|
众周所知,[Git.io](https://Git.io)是一个不错的生成短链接的网站,由Github提供([相关链接](https://github.blog/2011-11-10-git-io-github-url-shortener/))
|
||||||
|
然而Git.io只能缩短Github域名的网址。
|
||||||
|
我还是挺喜欢Git.io这个域名的,尽管它比t.cn这种链接要长,但是Git(愚蠢)听起来就是很有意思啦23333
|
||||||
|
所以我想了一个办法来解决Git.io只能创建Github.com网站链接的限制。
|
||||||
|
(尽管很想搞一个能自定义Git.io链接的选项,可惜我前端不好LOL)
|
||||||
|
(其实要不是因为CORS这种问题,就不用PHP来浪费资源了……)
|
||||||
|
|
||||||
|
# REMOVED
|
||||||
|
由于此脚本被滥用导致本博客被删,此服务将不再提供
|
||||||
51
_posts/2019-04-05-cholang.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx对编程语言的选择
|
||||||
|
tags: [Mayx, 编程语言]
|
||||||
|
---
|
||||||
|
|
||||||
|
在编程语言里,我更喜欢冷门的Linux Shell,这是为什么呢?<!--more-->
|
||||||
|
|
||||||
|
# 不学习的语言
|
||||||
|
## 糟糕的VS
|
||||||
|
As We All Know,Microsoft Visual Studio是一个功能强大的IDE,光文档就和4本字典所含的字一样多,微软为了开发可真是尽心尽力啊!
|
||||||
|
然而,强大的Visual Studio比某些3A大作还要耗资源,我的电脑实在是带不起来这强大的**IDE**
|
||||||
|
更别说编译一个中型项目就要一晚上的时间,错了一个字就要再等一个晚上!
|
||||||
|
而且,这个IDE就要1GB+,而运行平台就要100MB+。实在忍不了。
|
||||||
|
所以,我不选择C#,ASP.net等微软系编程语言作为我使用的编程语言。
|
||||||
|
(其实我还没考虑VS要花钱的问题,如果考虑这个就更糟糕了)
|
||||||
|
|
||||||
|
## 难用的编译型语言
|
||||||
|
其实,IDE的问题不是主要问题,选择编程语言,还是以语法为准 ~~(不考虑效率吗?)~~
|
||||||
|
编译型语言要记的东西太多了,一大堆乱七八糟的库,看似整洁然而臃肿的代码,都是令我劝退的主要原因。
|
||||||
|
编译需要花时间其实都不是什么大事,反正有服务器,编译时挂在上面就可以了。
|
||||||
|
但是编译时用的长如面条一样的选项就令人很难受了。
|
||||||
|
这也是为什么我喜欢能一键安装的Ubuntu,不需要编译,速度又快又好,可谓是用户首选。
|
||||||
|
所以,包括Java在内,C、C++、Golang等语言我都不选择
|
||||||
|
|
||||||
|
## 严格的Python
|
||||||
|
我写程序从来不用缩进,因为手机上没有(LOL)
|
||||||
|
Python是个不错的的解释型语言,功能强大,未来发展前景也不错,但是写Python时要用尺子,不然就不知道嵌套了几层循环……
|
||||||
|
其他语言至少有花括号,只要数花括号的数量就知道嵌套的是否正确,然而Python就只能用尺子,而且如果嵌套的有问题,一堆代码就等着打空格吧!
|
||||||
|
还有import,Python需要调用库,感觉和C的include差不多,但是这一点让我感觉很反感。
|
||||||
|
所以相比之下,我不选择Python
|
||||||
|
|
||||||
|
## 其他的解释型语言
|
||||||
|
Ruby?那是什么?听起来就很糟糕~
|
||||||
|
Node.js?感觉还行,就是配置起来太麻烦了……
|
||||||
|
PowerShell?微软的东西还是算了,没人用的~(包括Windows Server也都算了吧,微软还是不要干不擅长的东西~)
|
||||||
|
Perl?听起来不错,有时间可以了解了解。
|
||||||
|
…………
|
||||||
|
|
||||||
|
# 学习的语言
|
||||||
|
## Linux Shell?
|
||||||
|
虽然Ta的语法有点反人类,很多命令都是简写,不过我就是喜欢缩减的单词和命令,好记又好输,虽然不支持GUI是个缺点……但是扩展性强的Ta可以用其他方式弥补这一缺点
|
||||||
|
|
||||||
|
## PHP
|
||||||
|
其实之前也没想学PHP,不过后来有了服务器,有了运行的空间倒也没什么不方便的,而且想要什么功能基本上一搜一个准,果然PHP是全世界最好的语言23333
|
||||||
|
|
||||||
|
## JavaScript
|
||||||
|
为了搭这个博客顺带着学了一下,运行简单,网络上示例多都是Ta的优点,所以JS也不错。
|
||||||
|
|
||||||
|
# 结论
|
||||||
|
所以Mayx选择了编译型语言中的Linux Shell、PHP、JavaScript。
|
||||||
51
_posts/2019-04-05-crash.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx又双叒叕Crash了……
|
||||||
|
tags: [Mayx, Crash]
|
||||||
|
---
|
||||||
|
|
||||||
|
最近感觉SAN值又往下掉,发篇博客分析一下。<!--more-->
|
||||||
|
|
||||||
|
# Mayx的吐槽
|
||||||
|
怎么又Crash了?不是说MOS是全世界最好的系统吗 ~~(全是坑的系统吗23333)~~ ……
|
||||||
|
|
||||||
|
# Mayx的马奇诺防线
|
||||||
|
至少还是全世界最好的系统,那么有哪些保护措施呢?
|
||||||
|
|
||||||
|
- 理智保护
|
||||||
|
该保护仅在有着足够的SAN值才可使用,SAN值接近于0无法使用……
|
||||||
|
|
||||||
|
- 信仰(MOS)
|
||||||
|
感觉有点像Avatar therapy,不过应该还是有区别的。不过当MOS也开始报错,开始Crash时,那就无能为力了……
|
||||||
|
|
||||||
|
- 自动还原(遗忘)
|
||||||
|
当SAN值低于一定程度时,会把思维恢复到一个之前正常的水平,以防SAN值继续降低。不过如果近一段时间的SAN值都不高的话,就失去它的作用了……
|
||||||
|
|
||||||
|
# Mayx的分析
|
||||||
|
很好,MRS来处理一下这些问题!
|
||||||
|
`MRS(Mayx Recovery System):[Failed]分析失败`
|
||||||
|
`[Fatal Error]MRS Crashed`
|
||||||
|
……还真是没用啊……好吧,MAS <-- MRS,开始分析
|
||||||
|
```
|
||||||
|
MAS(Mayx Analysis System):
|
||||||
|
[Info]Booting……
|
||||||
|
[Info]Connecting to MRS ............[OK]
|
||||||
|
[Info]Processing……
|
||||||
|
[Info]OK,Exporting Report……
|
||||||
|
```
|
||||||
|
不错!来看一下报告:
|
||||||
|
|
||||||
|
## MAS(Mayx Analysis System) Report
|
||||||
|
查找到错误:不可预料的系统错误
|
||||||
|
源:Mayx
|
||||||
|
以下为出现错误的可能性:
|
||||||
|
源镜像兼容性错误
|
||||||
|
Details:
|
||||||
|
由于镜像与环境不兼容出现的错误,部分功能发生冲突,Robust Index过低,滥用等原因使系统硬件损耗过大,最终使整个系统呈现不可逆转的性能下降……
|
||||||
|
|
||||||
|
## MRS(Mayx Recovery System) Report
|
||||||
|
[Warn]没有针对该错误的解决方案
|
||||||
|
|
||||||
|
# 结论
|
||||||
|
还好现在的SAN值恢复了,不过既然性能下降不可逆转,那Crash的问题迟早还会出现,尤其是SAN值降为0时,那就真的完蛋了……
|
||||||
|
~~(各位还是忽略这看起来乱七八糟的中二文吧23333)~~
|
||||||
85
_posts/2019-04-13-iwara.md
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 如何下载Iwara上的视频?
|
||||||
|
tags: [Iwara, PHP, 视频]
|
||||||
|
---
|
||||||
|
|
||||||
|
PHP果然是全世界最好的语言,我又用PHP解决了一个问题!<!--more-->
|
||||||
|
|
||||||
|
# 制作原因
|
||||||
|
Iwara(Ecchi)上的视频是真的有意思,尤其是镇站之宝OBSERVATION DIARY,简直是R183D动画的巅峰 ~~(请原谅我的孤陋寡闻)~~ ,所以为了更好的看Iwara上的的视频,我写了Iwara Viewer来帮助我们下载Iwara(Ecchi)上面的视频。
|
||||||
|
|
||||||
|
# Code
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
if ( $_GET["ID"] == '' ) {
|
||||||
|
if ( $_GET["page"] == '' ) {
|
||||||
|
$_GET["page"] = 0;
|
||||||
|
}
|
||||||
|
if ( $_GET["sort"] == '' ) {
|
||||||
|
$_GET["sort"] = "date";
|
||||||
|
}
|
||||||
|
$url = 'https://ecchi.iwara.tv/videos?page='.$_GET["page"].'&sort='.$_GET["sort"];
|
||||||
|
$str = file_get_contents($url);
|
||||||
|
$preg='/<a href="\/videos\/(.*?)".*?>(.*?)<\/a>/is';
|
||||||
|
preg_match_all($preg,$str,$match);//在$str中搜索匹配所有符合$preg加入$match中
|
||||||
|
echo "<title>Mayx Iwara Viewer</title>";
|
||||||
|
echo "<h1>Mayx Iwara Viewer</h1><br />Sort by: <a href=\"?page=".$_GET["page"]."&sort=date\">Date</a> <a href=\"?page=".$_GET["page"]."&sort=views\">Views</a> <a href=\"?page=".$_GET["page"]."&sort=likes\">Likes</a><hr /><table border=\"1\"><tr>";
|
||||||
|
$j=0;
|
||||||
|
for($i=0;$i<count($match[0]);$i++)//逐个输出超链接地址
|
||||||
|
{
|
||||||
|
if (($i % 2) == $j) {
|
||||||
|
if ( $match[1][$i] == $match[1][$i+1] ) {
|
||||||
|
echo "<td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">".$match[2][$i]."</a></td>";
|
||||||
|
} else {
|
||||||
|
echo "<td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">No Image</a></td><td>".$match[2][$i]."</td><td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">View in Iwara</a><br><a href=\"?ID=https://ecchi.iwara.tv/videos/".$match[1][$i]."\">Download Url in Server</a></td></tr><tr>";
|
||||||
|
if ($j == 0) {
|
||||||
|
$j = 1;
|
||||||
|
} else {
|
||||||
|
$j = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "<td>".$match[2][$i]."</td><td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">View in Iwara</a><br><a href=\"?ID=https://ecchi.iwara.tv/videos/".$match[1][$i]."\">Download Url in Server</a></td></tr><tr>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "</tr></table><hr><a href=\"?page=".($_GET["page"] + 1)."&sort=".$_GET["sort"]."\" >Next Page</a>";
|
||||||
|
} else {
|
||||||
|
$data = file_get_contents('https://ecchi.iwara.tv/api/video/'.trim(strrchr($_GET["ID"], '/'),'/'));
|
||||||
|
$file = json_decode($data,true);
|
||||||
|
|
||||||
|
echo "Download URL:<br>https:";
|
||||||
|
echo $file[0]['uri'];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
(2019.4.18 更新:解决了部分没有图片而导致错位的问题)
|
||||||
|
(2019.4.18 更新:解决了由于智障导致的图片被筛掉的问题,但是并不保证会不会再出现问题)
|
||||||
|
|
||||||
|
# 使用方法
|
||||||
|
除了比Iwara更简陋,其他的没什么太大的区别,增加了一个Download Url in Server的选项,用来帮助在服务器上直接下载视频(因为Iwara通过识别IP来防盗链……),得出的链接可直接在服务器上下载(比如用KodExplorer),在服务器上下载的速度还是很不错的。
|
||||||
|
不过有的时候Iwara图片服务器也会被Ban(比如移动网),这时候就应该用到[miniProxy](https://github.com/joshdick/miniProxy)了(当然代码也得改,就是我太懒了,懒得改2333)
|
||||||
|
|
||||||
|
# 缺点
|
||||||
|
没有观看数/作者等信息、而且不知道Iwara的服务器在哪里,用这个速度浏览的速度也不会有太大提升……
|
||||||
|
|
||||||
|
# 演示
|
||||||
|
<https://counter.mayx.me/iwaraview.php>
|
||||||
|
如需用演示站下载,可复制地址,然后用Download Tool下载(因为演示站的IP和你的服务器IP不同):
|
||||||
|
```php
|
||||||
|
<h1>Mayx Iwara Video Download Tool</h1><form action="iwara.php" method="get" >
|
||||||
|
|
||||||
|
Video URL: <input type="text" name="ID"><br>
|
||||||
|
<input type="submit">
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<br>
|
||||||
|
<?php
|
||||||
|
if ( $_GET["ID"] != '' ) {
|
||||||
|
$data = file_get_contents('https://ecchi.iwara.tv/api/video/'.trim(strrchr($_GET["ID"], '/'),'/'));
|
||||||
|
$file = json_decode($data,true);
|
||||||
|
|
||||||
|
echo "Download URL:<br>https:";
|
||||||
|
echo $file[0]['uri'];
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
```
|
||||||
61
_posts/2019-04-24-shell.md
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
title: (转)Shell 脚本编程陷阱
|
||||||
|
layout: post
|
||||||
|
author: Carpetsmoker
|
||||||
|
tags: [Shell, 编程]
|
||||||
|
---
|
||||||
|
|
||||||
|
随着代码量的增加,你的脚本会变得越来越难以维护,但你也不会想用别的语言重写一遍,因为你已经在这个 shell 版上花费了很多时间。
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
Shell 脚本很棒,你可以非常轻松地写出有用的东西来。甚至像是下面这个傻瓜式的命令:
|
||||||
|
```shell
|
||||||
|
# 用含有 Go 的词汇起名字:
|
||||||
|
$ grep -i ^go /usr/share/dict/* | cut -d: -f2 | sort -R | head -n1
|
||||||
|
goldfish
|
||||||
|
```
|
||||||
|
如果用其他编程语言,就需要花费更多的脑力,用多行代码实现,比如用 Ruby 的话:
|
||||||
|
```ruby
|
||||||
|
puts(Dir['/usr/share/dict/*-english'].map do |f|
|
||||||
|
File.open(f)
|
||||||
|
.readlines
|
||||||
|
.select { |l| l[0..1].downcase == 'go' }
|
||||||
|
end.flatten.sample.chomp)
|
||||||
|
```
|
||||||
|
Ruby 版本的代码虽然不是那么长,也并不复杂。但是 shell 版是如此简单,我甚至不用实际测试就可以确保它是正确的。而 Ruby 版的我就没法确定它不会出错了,必须得测试一下。而且它要长一倍,看起来也更复杂。
|
||||||
|
|
||||||
|
这就是人们使用 Shell 脚本的原因,它简单却实用。下面是另一个例子:
|
||||||
|
```shell
|
||||||
|
curl https://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_gemeenten |
|
||||||
|
grep '^<li><a href=' |
|
||||||
|
sed -r 's|<li><a href="/wiki/.+" title=".+">(.+)</a>.*</li>|\1|' |
|
||||||
|
grep -Ev '(^Tabel van|^Lijst van|Nederland)'
|
||||||
|
```
|
||||||
|
这个脚本可以从维基百科上获取荷兰基层政权的列表。几年前我写了这个临时的脚本,用来快速生成一个数据库,到现在它仍然可以正常运行,当时写它并没有花费我多少精力。但要用 Ruby 完成同样的功能则会麻烦得多。
|
||||||
|
|
||||||
|
现在来说说 shell 的缺点吧。随着代码量的增加,你的脚本会变得越来越难以维护,但你也不会想用别的语言重写一遍,因为你已经在这个 shell 版上花费了很多时间。
|
||||||
|
我把这种情况称为“Shell 脚本编程陷阱”,这是[沉没成本谬论](https://youarenotsosmart.com/2011/03/25/the-sunk-cost-fallacy/)的一种特例(LCTT 译注:“沉没成本谬论”是一个经济学概念,可以简单理解为,对已经投入的成本可能被浪费而念念不忘)。
|
||||||
|
实际上许多脚本会增长到超出预期的大小,你经常会花费过多的时间来“修复某个 bug”,或者“添加一个小功能”。如此循环往复,让人头大。
|
||||||
|
如果你从一开始就使用 Python、Ruby 或是其他类似的语言来写这个程序,你可能会在写第一版的时候多花些时间,但以后维护起来就容易很多,bug 也肯定会少很多。
|
||||||
|
以我的 [packman.vim](https://github.com/Carpetsmoker/packman.vim) 脚本为例。它起初只包含一个简单的用来遍历所有目录的 `for` 循环,外加一个 `git pull`,但在这之后就刹不住车了,它现在有 200 行左右的代码,这肯定不能算是最复杂的脚本,但假如我一上来就按计划用 Go 来编写它的话,那么增加一些像“打印状态”或者“从配置文件里克隆新的 git 库”这样的功能就会轻松很多;添加“并行克隆”的支持也几乎不算个事儿了,而在 shell 脚本里却很难实现(尽管不是不可能)。事后看来,我本可以节省时间,并且获得更好的结果。
|
||||||
|
出于类似的原因,我很后悔写出了许多这样的 shell 脚本,而我在 2018 年的新年誓言就是不要再犯类似的错误了。
|
||||||
|
# 附录:问题汇总
|
||||||
|
需要指出的是,shell 编程的确存在一些实际的限制。下面是一些例子:
|
||||||
|
- 在处理一些包含“空格”或者其他“特殊”字符的文件名时,需要特别注意细节。绝大多数脚本都会犯错,即使是那些经验丰富的作者(比如我)编写的脚本,因为太容易写错了,[只添加引号是不够的](https://dwheeler.com/essays/filenames-in-shell.html)。
|
||||||
|
- 有许多所谓“正确”和“错误”的做法。你应该用 `which` 还是 `command`?该用 `$@` 还是 `$*`,是不是得加引号?你是该用 `cmd $arg` 还是 `cmd "$arg"`?等等等等。
|
||||||
|
- 你没法在变量里存储空字节(0x00);shell 脚本处理二进制数据很麻烦。
|
||||||
|
- 虽然你可以非常快速地写出有用的东西,但实现更复杂的算法则要痛苦许多,即使用 ksh/zsh/bash 扩展也是如此。我上面那个解析 HTML 的脚本临时用用是可以的,但你真的不会想在生产环境中使用这种脚本。
|
||||||
|
- 很难写出跨平台的通用型 shell 脚本。`/bin/sh` 可能是 `dash` 或者 `bash`,不同的 shell 有不同的运行方式。外部工具如 `grep`、`sed` 等,不一定能支持同样的参数。你能确定你的脚本可以适用于 Linux、macOS 和 Windows 的所有版本吗(无论是过去、现在还是将来)?
|
||||||
|
- 调试 shell 脚本会很难,特别是你眼中的语法可能会很快变得记不清了,并不是所有人都熟悉 shell 编程的语境。
|
||||||
|
- 处理错误会很棘手(检查 `$?` 或是 `set -e`),排查一些超过“出了个小错”级别的复杂错误几乎是不可能的。
|
||||||
|
- 除非你使用了 `set -u`,变量未定义将不会报错,而这会导致一些“搞笑事件”,比如 `rm -r ~/$undefined` 会删除用户的整个家目录([瞅瞅 Github 上的这个悲剧](https://github.com/ValveSoftware/steam-for-linux/issues/3671))。
|
||||||
|
- 所有东西都是字符串。一些 shell 引入了数组,能用,但是语法非常丑陋和费解。带分数的数字运算仍然难以应付,并且依赖像 `bc` 或 `dc` 这样的外部工具(`$(( .. ))` 这种方式只能对付一下整数)。
|
||||||
|
|
||||||
|
# 反馈
|
||||||
|
你可以发邮件到 <martin@arp242.net>,或者在 [GitHub 上创建 issue](https://github.com/Carpetsmoker/arp242.net/issues/new) 来向我反馈,提问等。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
译者: [jdh8383](https://linux.cn/lctt/jdh8383)
|
||||||
|
翻译: <https://linux.cn/article-10772-1.html>
|
||||||
|
源:[The shell scripting trap](https://arp242.net/weblog/shell-scripting-trap.html)
|
||||||
60
_posts/2019-04-27-antiban.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx的Anti-Ban计划
|
||||||
|
tags: [Mayx, Anti-Ban]
|
||||||
|
---
|
||||||
|
|
||||||
|
经过研究,网关管理没什么好怕的!<!--more-->
|
||||||
|
|
||||||
|
# 起因
|
||||||
|
众所周知,由于某些原因,互联网总是被上层网关所限制,所以为了解决这个问题,我研究了一下Ban的原理和Anti-Ban的方法。
|
||||||
|
|
||||||
|
# Ban的原理
|
||||||
|
Ban网站的原理大概分为以下几点:
|
||||||
|
1.DNS缓存污染(Ban域名)
|
||||||
|
2.IP地址或传输层端口封锁(BanIP)
|
||||||
|
3.TCP重置攻击
|
||||||
|
|
||||||
|
具体内容请自行前往[Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%AE%A1%E6%9F%A5
|
||||||
|
)自行查询(这个链接可没有特指哦~),在此不再详述。
|
||||||
|
|
||||||
|
# Anti-Ban的方案
|
||||||
|
## 针对Ban域名的方案
|
||||||
|
DNSSEC、DNSCrypt、DoT、DoH等等都可以解决这个问题,或者是不通过DNS,直接获得IP,然后发送Host头来获取网页内容也可以。我的想法是建立一个本地Proxy,先通过前面几种方案获得IP,然后发送Host,这里需要注意的是要通过HTTPS发送但是不使用SNI,因为SNI是不加密的,而且用代理就没必要一定要获得正确的证书。
|
||||||
|
防火墙会对SNI进行拦截,所以需要注意。
|
||||||
|
|
||||||
|
## 针对BanIP的方案
|
||||||
|
BanIP是真的绝,因为网络控制毕竟在网关,Ta要丢包谁也没办法,不过可以试试CloudFlare,CloudFlare可以不使用原网站的IP,而且很多网站都使用CloudFlare,所以BanCloudFlare的IP肯定不是好选择。
|
||||||
|
|
||||||
|
## TCP重置攻击
|
||||||
|
HTTPS基本上可以避免这个问题,除了会受SNI没加密的影响(TLS1.3可解),但是证书……没关系,靠本地Proxy对证书的要求不是很多。这个解决方案基本上就是加密,让网关不知道你在干什么,也就不能对你发RST包了。
|
||||||
|
|
||||||
|
# 计划
|
||||||
|
制作一个本地Proxy小程序,用Python是个不错的选择,绕过DNS和TCP Reset,再配上CloudFlare,基本上网关应该就Ban不了你了。
|
||||||
|
不过Python的学习成本还挺高的,感觉比PHP难……回头有时间可以试试看。
|
||||||
|
|
||||||
|
# 结果
|
||||||
|
Python对我来说果然还是太难了QAQ,所以,我觉得使用Nginx就够用了,配置如下:
|
||||||
|
```
|
||||||
|
location / {
|
||||||
|
proxy_pass https:// #填写目标IP;
|
||||||
|
proxy_redirect off ;
|
||||||
|
proxy_set_header Host #填写目标域名;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header REMOTE-HOST $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_connect_timeout 300; #跟后端服务器连接超时时间,发起握手等候响应时间
|
||||||
|
proxy_send_timeout 300; #后端服务器回传时间,就是在规定时间内后端服务器必须传完所有数据
|
||||||
|
proxy_read_timeout 600; #连接成功后等待后端服务器的响应时间,已经进入后端的排队之中等候处理
|
||||||
|
proxy_buffer_size 256k; #代理请求缓冲区,会保存用户的头信息以供nginx进行处理
|
||||||
|
proxy_buffers 4 256k; #同上,告诉nginx保存单个用几个buffer最大用多少空间
|
||||||
|
proxy_busy_buffers_size 256k; #如果系统很忙时候可以申请最大的proxy_buffers
|
||||||
|
proxy_temp_file_write_size 256k; #proxy缓存临时文件的大小
|
||||||
|
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
|
||||||
|
proxy_max_temp_file_size 128m;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
果然,搞事情还是用自己熟悉的搞比较好~23333
|
||||||
|
|
||||||
|
# 事实
|
||||||
|
我果然还是图样图森破了~我想的方案其实就是[域前置](https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%89%8D%E7%BD%AE),所以,该计划作废QAQ
|
||||||
19
_posts/2019-05-03-origip.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 如何“人肉”服务器?
|
||||||
|
tags: [服务器, CDN, IP]
|
||||||
|
---
|
||||||
|
|
||||||
|
没错,我就是来安利Censys的!<!--more-->
|
||||||
|
|
||||||
|
# 起因
|
||||||
|
当今有不少网站都喜欢在外面套CDN,因为CDN既能加速,又能节约服务器带宽,还能保护服务器(没错,说的就是Cloudflare,不过不止Ta一家)。但是用了CDN后就不知道源站IP了,这还是挺糟糕的,那怎么办呢?
|
||||||
|
|
||||||
|
# 方案
|
||||||
|
不错,接下来该[Censys](https://censys.io)出场了,假如我对[ESUWiki](https://esu.wiki)感觉很不爽 ~~(我花火学园服务器加域名一年也花不了$100,你ESUWiki倒好,一年$1000+,是在搞什么?)~~ ,然后我发现Ta也套了一层Cloudflare。好,那么接下来就让我们打开Censys搜一下Ta吧!
|
||||||
|
以esu.wiki为关键词搜索,搜到IP:`149.56.110.126` 然后实际访问一下<https://149.56.110.126>,果然跳转到了ESUWiki,看来就是Ta了?
|
||||||
|
不过好像也不完全是这样,Ta先跳到<https://weiki.esu.zone/>,然后才跳到<https://esu.wiki>,这就很麻烦了……算啦,反正这个服务器肯定和ESUWiki脱不了干系~
|
||||||
|
|
||||||
|
# 结果
|
||||||
|
通过Censys可以找到不少Cloudflare后面的IP,但也不代表这就没救了,只要设置防火墙白名单就能解决!
|
||||||
|
Censys还有更多功能,像端口扫描之类的都可以,虽然也有其他类似的网站,不过既然Censys用的顺手, ~~而且名字又好听23333,~~ 所以,就好好用Ta吧!
|
||||||
21
_posts/2019-05-12-baidu.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 如何不使用百度App打开搜索结果?
|
||||||
|
tags: [百度, 不使用]
|
||||||
|
---
|
||||||
|
|
||||||
|
在中国,还是百度用的多啊~<!--more-->
|
||||||
|
|
||||||
|
# 起因
|
||||||
|
不知何时起,百度的搜索结果几乎都要下载App才能查看,虽然不是很喜欢CSDN,但是百度全是CSDN的内容……百度用了很多年也实在是没心用其他的搜索引擎,但是百度App做的是公认的烂,实在不想用。
|
||||||
|
对于这个问题,我该怎么办呢?
|
||||||
|
|
||||||
|
# 研究
|
||||||
|
我发现,在百度跳转页面的地址里,有一个参数叫做`web_url`,这记录了实际要跳转的页面,虽然用插件应该更好,但是我不会~,所以我想了想,打算用JS解决这个问题。
|
||||||
|
|
||||||
|
# 代码
|
||||||
|
[baidu.html](https://raw.githubusercontent.com/Mabbs/mabbs.github.io/master/baidu.html)
|
||||||
|
|
||||||
|
# 用法
|
||||||
|
打开[Baidu移动页面转换器](https://mabbs.github.io/baidu.html),然后打开百度移动版搜索的结果,一般要求下载百度App的URL开头是`mbd.baidu.com`。复制这个URL,粘贴到转换器里,提交后就会自动跳转到真正的页面了。
|
||||||
|
|
||||||
37
_posts/2019-05-27-wikipic.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 使用PHP批量下载Mediawiki站点的图片
|
||||||
|
tags: [PHP, Mediawiki, 图片]
|
||||||
|
---
|
||||||
|
|
||||||
|
又是万能的PHP!不过还是Mediawiki API的功劳<!--more-->
|
||||||
|
最近我为了备份一下[某个Wiki站](http://zh.moegirl.org/)(Ta们把R18名字空间的东西删的一干二净 ~~后来才知道原来转移到了[一个Wiki上](https://www.hmoegirl.com/),真的是好久没关注了~~ ),然后学习了一下Mediawiki API来下载整个Wiki(Ta们把站点导出也给弄没了QAQ)
|
||||||
|
文本很好下载,但是Mediawiki的图片我不知道存在哪里,API文档翻烂了也没找到把图片解析成地址的API,那怎么办呢?
|
||||||
|
|
||||||
|
# 解决方案
|
||||||
|
“解析”?emmmm……parse?不错,正好有这么一个action,好的,那就这样搞吧!
|
||||||
|
|
||||||
|
# Code
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
set_time_limit(0);
|
||||||
|
ignore_user_abort();
|
||||||
|
$list = array("图片数组");
|
||||||
|
|
||||||
|
$arrlength=count($list);
|
||||||
|
for($x=0;$x<$arrlength;$x++) {
|
||||||
|
$tmp = json_decode(file_get_contents("https://MediaWiki的地址/api.php?action=parse&text=[[File:".$list[$x]."]]&contentmodel=wikitext&formatversion=2&format=json"),true);
|
||||||
|
$preg='/src="(.*?)"/is';
|
||||||
|
preg_match($preg,$tmp[parse][text],$match);
|
||||||
|
$tt=$tt."
|
||||||
|
".$match[1];
|
||||||
|
}
|
||||||
|
$markout = fopen("List.txt", "w") or die("Unable to open file!");
|
||||||
|
fwrite($markout, $tt);
|
||||||
|
fclose($markout);
|
||||||
|
die("Finish");
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
|
||||||
|
# P.S.
|
||||||
|
如果需要获取该Wiki的所有图片,可以从`api.php?action=query&list=allimages`这里获取。
|
||||||
19
_posts/2019-05-30-exam.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 高考即将来临
|
||||||
|
tags: [高考]
|
||||||
|
---
|
||||||
|
|
||||||
|
都要高考了,看什么Mediawiki API文档?!<!--more-->对此,我也实在是无言以对。而且[上一篇博客](/2019/05/27/wikipic.html)写的那个代码实在是太智障了,就和我现在在高考(2019.06.07)马上来临时还在智障的写着博客一样的智障,而更加智障的是,我的成绩那么差,差本来就很智障,而我现在的行为可谓是智障中的智障,再加上看了文档后写的那智障代码,我真不知道该怎么描述自己的智障了……
|
||||||
|
|
||||||
|
# [上一篇博客](/2019/05/27/wikipic.html)的智障之处
|
||||||
|
多少图片就要请求多少次,简直是太智障了吧!为什么不一次性POST过去,然后用`preg_match_all`一解析不就完事了嘛!还非得等好几分钟一个一个解析那些地址……
|
||||||
|
|
||||||
|
# 现在的智障之处
|
||||||
|
2019年高考日的倒计时:
|
||||||
|
距今还有8天 (2019年06月07日 星期五,己亥年(猪年)五月初五)
|
||||||
|
这就不用解释了吧!
|
||||||
|
|
||||||
|
# 怎么办?
|
||||||
|
~~我能怎么办?我也很绝望啊~~~
|
||||||
|
如果以后有工作的话,说不定会变成工作狂吧(LOL)!
|
||||||
227
_posts/2019-06-10-cheat.md
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx被外国人骗了?!
|
||||||
|
tags: [Mayx, 外国人, 骗子]
|
||||||
|
---
|
||||||
|
|
||||||
|
简直不可思议,我要把这个锅扔给百度翻译!<!--more-->~~(百度翻译表示不接这个锅23333)~~
|
||||||
|
|
||||||
|
# 事件发展
|
||||||
|
这个事件发生在高考前,现在高考结束了来总结一下
|
||||||
|
有一天,有一个叫做[Lori Robinson](mailto:lori.j.robinson@usa.com)的外国人给我发了一封邮件,内容如下:
|
||||||
|
|
||||||
|
> Hello dear,
|
||||||
|
>
|
||||||
|
> Thanks so much for coming into my life the time I needed you most. I have decided to spend the rest of my energy in building a home with you, firstly, we have to accept our faith that this journey of love will not be so easy or rosy, but be assured that nothing good comes very easy and we need to be strong and be ready to stand for each other. I have decided to moving my assets to your country so I can forward for my retirement but I want to take an official leave so I can visit you in your country ,I have made some good fortune in this war zone, You know I offer contract security network for the crude oil lifting in Iraq and also I fund local miners to mine and extract gold and diamonds, at least 150 people are working in my mining concession legally given to me by the Afghan government, in return I have an NGO housing, clothing, feeding and education 100 motherless kids.
|
||||||
|
>
|
||||||
|
> I am interested to moving my generated funds, gold and diamonds and The funds is $3.5,000,000 ( Three Million, five hundred thousand US Dollars) the Gold is 1730kgs of gold and the diamonds is 25,000carats parcel of uncut diamonds,I am a woman who does things according to the guidelines of my spirit, you was chosen to be my partner and also to help me to get this box, because my mind testify that you are the right person for me and I know you will not disappoint me , I chose to use you as a partner in this deal, because I'm not allowed to send the package to all of my friends or relatives as i am still in the military outside the United States, though at the end if i send anything to the USA it will be suspicious and I be will query for the action, so I chose you because I know you are the ideal person for this deal as a foreigner who is not a US citizen.
|
||||||
|
>
|
||||||
|
> Please put away the fear or doubt, and make up your mind to help me in this matter, I promise you will not regret it been part of this matter, I do not know what else I can say to convince you and make you believe me, but I I pray that God will give you the grace to make up your mind,Once again I want you to know that there is no complication in the way, if you follow my instructions everything will go smoothly and well in the process of receiving the case, please try to keep this secret matter between you and me, to avoid making space to the enemy, because if you and I should agree on one thing with our heart with seriousness we must surely achieve success in the end.
|
||||||
|
>
|
||||||
|
> Please I want to mention once again that any disposition toward this project is intact between each of us and in no circumstances should you let the security company to know the contents of the box, remember that the box was registered as a diplomat for the package security company and that is what they believe to be in the box, so you should not let them know that the content of the box is money.
|
||||||
|
>
|
||||||
|
> Please I will like you to send your information to me so that I can pass on to security cargo company to allow them to proceed to your country for the final delivery of cash at your door step. Send your information to me urgently;
|
||||||
|
>
|
||||||
|
> Your full names: ...........
|
||||||
|
Your age: ...........
|
||||||
|
Your Address: ..............
|
||||||
|
ZIP CODE: .................
|
||||||
|
City: ......................
|
||||||
|
Country: ...................
|
||||||
|
Phone number: .........
|
||||||
|
Profession: ................
|
||||||
|
>
|
||||||
|
> Once i am done with my official assignment, I will come to meet you one on one in your country, and after that we will have to decide how to carry on with our lives, but for now, please, I appreciate us to pay more attention to this issue, you receive the delivery and keep it safe until I come over to discuss with you on how best to invest it in your country
|
||||||
|
>
|
||||||
|
> I await your immediate response
|
||||||
|
Kiss
|
||||||
|
Loris Robinson
|
||||||
|
|
||||||
|
emmmm写的不错,不过看不太懂……算啦,丢到百度翻译上看看吧,结果大意就是她有好多好多钱、钻石、金块和矿,然后想给我,让我把我的地址发给她,好让她邮过来。
|
||||||
|
不过这不是最重要的,重要的是她想和我结婚?!要知道我才高中刚毕业,于是我向她提出了这个疑问,得到的回答是:
|
||||||
|
|
||||||
|
> Remember that distance or color does not matter even our age but love matters a lot in life , I am a woman who does things according to the guidelines of my spirit, you was chosen to be my partner and also to help me to get this fund, because my mind testify that you are the right person for me and I know you will not disappoint me , I chose to use you as a partner in this deal, because I'm not allowed to send the package to all of my friends or relatives as i am still in the military outside the United States.
|
||||||
|
|
||||||
|
哦,说的很有道理的样子,年龄无所谓,那是不是Lolicon也可以满足了?反正我的信息也值不了多少钱,那就给吧,于是我给她发了我的收件地址。然后她给我回信:
|
||||||
|
|
||||||
|
> PLEASE CONTACT THE TRADING COMPANY NOW
|
||||||
|
>
|
||||||
|
> I have contacted the courier company (Express Delivery Parcel Service ) that they are reliable and reliable.Once again I want you to know that there is no complication in the way, if you follow my instructions everything will go smoothly and well in the process of receiving the case, please try to keep this secret matter between you and me, to avoid making space to the enemy, because if you and I should agree on one thing with our heart with seriousness we must surely achieve success in the end.
|
||||||
|
>
|
||||||
|
> This delivery is going to be handle legally by the Express Delivery Parcel Service and there will be no form of risk in the process and the money will be sealed pack safely in a Diplomatic Box and the Diplomatic Box will be deliver to you in your country by a Diplomat. I have decide to compensate you with 30% of the total money once after the $3.5,000,000 ( Three Million, five hundred thousand US Dollars), the Gold is 1730kgs of gold and the diamonds is 25,000carats parcel of uncut diamonds.is delivered to you, while the rest balance shall be my investment capital in your country.
|
||||||
|
>
|
||||||
|
> Please I want to mention once again that any disposition toward this project is intact between each of us and in no circumstances should you let the security company to know the contents of the box, remember that the box was registered as a diplomat for the package security company and that is what they believe to be in the box, so you should not let them know that the content of the box is money.
|
||||||
|
>
|
||||||
|
> I have chosen this fast service so that you can receive the package within 72 hours after departure, bring the package to your home address, the bank have registered it to Express Delivery Parcel Service shipping and handed it to the company through their agent here, The company is with all your details,
|
||||||
|
Here at our military base, the government provides everything we need, our paycheck is paid to our bank account in the United States until we return home after the mission as long as I stay in Afghanistan, I can not receive or send The money you paid , I have paid for the registration of the shipment and I placed a shipment order to the shipping company for delivery of the box at your door step in your country. Please note that the diplomat does not know the contents of the box for security reasons and below is the company's contact details,
|
||||||
|
Please contact them now, tell them your name and country, that you are the right person to receive the cargo from Lory Robinson, a US Army officer.
|
||||||
|
>
|
||||||
|
> Fill in this information and send it to the security company and inform me:
|
||||||
|
> ```
|
||||||
|
> -------------------------------------------------
|
||||||
|
> My name is ............. Permanent resident ........................ I'm communicating with Lori's report Robinson, Email:
|
||||||
|
> lori.j.robinson@usa.com The company registers the shipment to the following address:
|
||||||
|
> Full names:
|
||||||
|
> Age:
|
||||||
|
> Address:
|
||||||
|
> Occupation:
|
||||||
|
> POSTCODES:
|
||||||
|
> City:
|
||||||
|
> Country:
|
||||||
|
> Phone number:
|
||||||
|
> Profession:
|
||||||
|
> --------------------------------------------------
|
||||||
|
> The delivery company's information is below:
|
||||||
|
> GLOBAL FASTWAY COURIER SERVICES / SAFETY COMPANY.
|
||||||
|
> E-MAIL: express.global@uymail.com
|
||||||
|
> E-MAIL: express.global@linuxmail.org
|
||||||
|
> Av. Del General Perón, 32
|
||||||
|
> 28008 Madrid,
|
||||||
|
> Spain
|
||||||
|
> Tel. +34 612 520330
|
||||||
|
> DIRECTOR OF PARTICIPATION
|
||||||
|
> Mr. William Anderson
|
||||||
|
> ----------------------------------------------- --- -------
|
||||||
|
> ```
|
||||||
|
> Just write to the company in the above email immediately, the company will be provided as soon as you contact them, I have begun with the agreement to meet you in your country before it expires month.
|
||||||
|
Allow me to stop so far and expect to receive your positive feedback once you contact the company. God bless you and your family.
|
||||||
|
>
|
||||||
|
> Love you and Kisses.
|
||||||
|
Love and care from,
|
||||||
|
Lori Robinson
|
||||||
|
|
||||||
|
大意就是让我把我的信息再转发给邮递公司吧,反正信息已经发过一次了,那再发一次也无所谓了吧,于是我给这个所谓的邮递公司发了我的信息,那个公司给我回复:
|
||||||
|
|
||||||
|
> EUROPE HEAD OFFICE,
|
||||||
|
GLOBAL BRAND EXPRESS COURIER SERVICES,
|
||||||
|
INTERNATIONAL AND LOCAL SHIPPING SERVICES,
|
||||||
|
Av. del General Perón, 32
|
||||||
|
28008 Madrid,
|
||||||
|
Spain,
|
||||||
|
Tel +34 612 520330,
|
||||||
|
E-mail:express.global@uymail.com
|
||||||
|
>
|
||||||
|
> HE SHIPMENT / DELIVERY SITUATION REPORT OF YOUR CONSIGNMENT IN SPAIN:
|
||||||
|
>
|
||||||
|
> ATTENTION:
|
||||||
|
ADDRESS : .....
|
||||||
|
CITY : ..............
|
||||||
|
COUNTRY .............China
|
||||||
|
TELL ................+86
|
||||||
|
>
|
||||||
|
> HE SHIPMENT / DELIVERY SITUATION REPORT OF YOUR CONSIGNMENT IN SPAIN:
|
||||||
|
>
|
||||||
|
> The above subject matter refers,
|
||||||
|
>
|
||||||
|
> The management of Global Fast Way Courier Service want to notify you that your consignment/one cargo box has been registered with our shipment company with Registration ID: AFGH55870199SJH for delivery to your country as soon as the necessary shipment logistics and requirement are obtained.
|
||||||
|
>
|
||||||
|
> we have earlier been informed about you by Your partner Loris Robinson , that she appointed you as the beneficiary to receive her shipment labelled (FAMILY TREASURE) a CONSIGNMENT/ONE CARGO BOX to your destination.
|
||||||
|
>
|
||||||
|
> OUR SERVICE TYPE DELIVERY DURATION CHARGES/FEES:
|
||||||
|
>
|
||||||
|
> Handling & Delivery Cost......570 Euro
|
||||||
|
Insurance..........................690 Euro
|
||||||
|
Total Cost........................1,260 Euro
|
||||||
|
Length of Days...........................Two Days
|
||||||
|
Order Number................................UESTNL
|
||||||
|
>
|
||||||
|
> Finally you are required to send the shipment and Insurance fee of 1,260 Eur to enable a proper facilitation and delivery of your consignment to your address in your country and note that the charges are best substantial because of the insurance cover we have undertaken in case of loss, damage or package breakage of your high priority consignment. We assume all responsibilities in case of any eventualities.
|
||||||
|
>
|
||||||
|
> YOU CAN MAKE THE PAYMENT TO US THROUGH MONEYGRAM WITH OUR ACCOUNT AUDITOR'S INFORMATION,BUT THAT WILL BE WHEN YOU SEND US YOUR SCANNED COPY OF YOUR INTERNATIONAL PASSPORT OR DRIVER’S LICENSE,BEFORE WE CAN SEND YOU OUR ACCOUNT AUDITOR'S INFORMATION YOU WILL USE TO SEND THE 1,260 Euro.
|
||||||
|
> Thanks for your Co-operation.
|
||||||
|
> WE PROMISE TO GRANT THE BEST OF OUR SERVICES TO ALL OUR CUSTOMERS & YOUR SATISFACTION IS OUR REPUTATION.
|
||||||
|
>
|
||||||
|
> Yours Faithfully,
|
||||||
|
Global Fast Way Courier Services
|
||||||
|
DIRECTOR IN CHARGE
|
||||||
|
Mr William Anderson
|
||||||
|
Tel +34 612 520330
|
||||||
|
|
||||||
|
然后还非常用心的配了一张快递单:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
注:由于隐私原因,涉及隐私的地方已经被删除 ~~(尽管大家都知道我的手机号)~~
|
||||||
|
这个邮件当时也没细看,然后就给Lori Robinson说了我已经给他们发了我的信息,过了几天,她给我发:
|
||||||
|
|
||||||
|
|
||||||
|
> Hello my love how are you doing ? Am so sorry you did not hear from me i was on duty i have not hear from you today i hope all is well with you? I plead with you in the name of God to try your best to negotiate with the security delivery company I'm worried because I can't live without you right here. You're my everything and Last night I did not sleep am worry about you my love.
|
||||||
|
>
|
||||||
|
> The delivery of the box to you holds a lot for us in the future. Once you receive the box, I will commence on the process of tendering resignation and once it is granted, I will come to your country for the sharing of the fund and planning a better future and life together. I cannot wait to be on your arms.
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> Kiss
|
||||||
|
> Lori J Robinson
|
||||||
|
|
||||||
|
嗯,不错,她又强调了一遍这个邮件,顺带着表现了一下关心,不过我当时在学校,然后我就和她说我在学校,不方便收Email。
|
||||||
|
当我回到家里,那个破公司给我发了一份邮件:
|
||||||
|
|
||||||
|
> EUROPE HEAD OFFICE,
|
||||||
|
GLOBAL BRAND EXPRESS COURIER SERVICES,
|
||||||
|
INTERNATIONAL AND LOCAL SHIPPING SERVICES,
|
||||||
|
Av. del General Perón, 32
|
||||||
|
28008 Madrid,
|
||||||
|
Spain,
|
||||||
|
Tel +34 612 520330,
|
||||||
|
E-mail:express.global@uymail.com
|
||||||
|
>
|
||||||
|
> ATTENTION: ,
|
||||||
|
>
|
||||||
|
>YOU HAVE HAVE TO SEND US YOUR SCANNED COPY OF YOUR INTERNATIONAL PASSPORT OR DRIVER’S LICENSE AND YOU CAN USE THIS INFORMATION AND SEND THIS MOREY TO OUR OFFICE 1,260 EURO AS SOON AS YOU MAKE THE PAYMENT SEND US THE PAYMENT DETAILS TO NABLE US PROCESS AND COMMECE YOUR SHIPMENT TO ARRIVE AT YOUR DOOR STEI IN YOUR COUNTRY WITHIN THE NEXT 3 WORKING DAYS. THE DATE AND CONFIRMED OF ARRIVAL WILL BE ISSUED TO YOU. YOU CAN MAKE THE PAYMENT TO US WITH OUR ACCOUNT AUDITOR'S INFORMATION AN STATED BELOW:
|
||||||
|
>
|
||||||
|
> BANK : BBVA.
|
||||||
|
ACC/IBAN: ES3501822659150201596186.
|
||||||
|
Swift : BBVAESMMXXX.
|
||||||
|
ACC NAME : ARCHER SAMUEL.
|
||||||
|
Address: Bulevard Ciudad de VICAR 1245.
|
||||||
|
Spain.
|
||||||
|
>
|
||||||
|
> Thanks for your Co-operation.
|
||||||
|
WE PROMISE TO GRANT THE BEST OF OUR SERVICES TO ALL OUR CUSTOMERS & YOUR SATISFACTION IS OUR REPUTATION.
|
||||||
|
>
|
||||||
|
>Yours Faithfully,
|
||||||
|
Global Fast Way Courier Services
|
||||||
|
DIRECTOR IN CHARGE
|
||||||
|
Mr William Anderson
|
||||||
|
Tel +34 612 520330
|
||||||
|
|
||||||
|
啊,要交钱的么……~~于是Mayx就立马付款,上当受骗了~~(才怪,我哪有那么多钱?)到这里一看就知道是骗子了,其实之前那个快递单仔细一看就是假的,那个条形码画的乱七八糟……
|
||||||
|
不过我还想聊下去,于是我给Lori Robinson说我付不起啊!于是她给我回复:
|
||||||
|
|
||||||
|
> Hello sweetheart,
|
||||||
|
>
|
||||||
|
>Hello how are you doing and your school i hope you are doing good in school? I am very sorry my darling for late response to you, I had a hectic day and was very sick that was why I couldn't get back to you, but I am fine and healthy again , Actually you are really trying for the success of this delivering box to you, in fact i thank you for all the efforts you have put on this already.But one thing you must know and understand is this, the express global company does not know that the content of the box is money and on no account should you tell them that what is inside the box is money, i received massage from delivery company the asking you to pay the fee of 1260 .
|
||||||
|
>
|
||||||
|
>I beg you to do anything within your means to comply with the security company so that you will receive this box, I have no access to money here and i do not know what else to do in this matter, the successful delivery of this box to you will determine how soon we will meet.
|
||||||
|
The U.S government provides everything that we need in the military base here, our salary are being paid into our Account via Bank of American Military banking in the United States, so i only have access to my account in U.S, but that will be after our assignment here in Syria, that's why i cannot make any payment and i decided to ask for your help. I cannot access my bank account in America while in the battle field, I can only access my account when I am back to the states for security reasons, please understand me and do something OK.
|
||||||
|
>
|
||||||
|
> My dear, i know you might not be happy with the response of the security delivery company asking you for some payment. so please i am counting and depending on you for the success of the fund. I believe in your ability to handle the project amicably with no delay so please i need your cooperation here to complete the security delivery company as soon as possible. I hope to hear from you as soon as you make the payment to them.
|
||||||
|
>
|
||||||
|
> And remember this is our future and our love that we are talking about OK,
|
||||||
|
Please kindly look for means even if it means to borrow or sale something, do it to sort out the bill so that the security delivery company will deliver the box to you, once I come back I really want to see you so that we will build life together.
|
||||||
|
>
|
||||||
|
> Please you really have to try your best, you are the only hope i have now. and remember do not take this matter lighly.
|
||||||
|
>
|
||||||
|
> Once the delive the funds, to you I will come to meet you one on one in your country, and after that we will have to decide how to carry on with our lives, but for now, please, I appreciate us to pay more attention to this issue, you receive the delivery and keep it safe until I come over to discuss with you on how best to invest it in your country
|
||||||
|
>
|
||||||
|
> I await your immediate response
|
||||||
|
Kiss
|
||||||
|
Loris Robinson
|
||||||
|
|
||||||
|
看这个意思是让我砸锅卖铁也要付这个钱?我可不干,然后她回复:
|
||||||
|
|
||||||
|
> Dearest,
|
||||||
|
>
|
||||||
|
> Hello thanks you for your message you send to me,I plead with you in the name of God to try your best to negotiate with the security delivery company and pay the fee, At this very point we have no other option than to comply with the delivery company because if they open the box, it will be a very big problem for us. Sweetheart, please lets you do the needful at this very stage before the military seal on the box expires.
|
||||||
|
>
|
||||||
|
> I want you to kindly write to the security company and tell them the amount of money you have with you and plead with them that you will send the balance to them as soon as you receive the box. Tell them the amount you can pay presently no matter how little let us see their response.
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> I await your immediate response
|
||||||
|
Kiss
|
||||||
|
Loris Robinson
|
||||||
|
|
||||||
|
……emmmm懒得理她了,于是这个事件到此为止。
|
||||||
|
|
||||||
|
# 结果
|
||||||
|
Mayx没有任何损失,怎么能叫骗呢?可是她给我带来了希望,又给我绝望,是想当QB吗?(LOL)
|
||||||
8
_posts/2019-06-11-encrypt.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
layout: encrypt
|
||||||
|
title: Jekyll也可以加密文章啦!
|
||||||
|
tags: [Jekyll, 加密]
|
||||||
|
tips: 请输入Mayx
|
||||||
|
excerpt: Jekyll赛高!
|
||||||
|
---
|
||||||
|
bbb68859d4e2a8a508932f48a440c894858154b96b3d5113a4488dd2425a709caf3795dcbd4aac25d9ab0f1628b85944cd69b28aae96bdb59a0c792cd9d93bf833e126f474642909164907daef803ecac7753ea5e85000521f80b85fa787e49d8b51faaef35ee728e007253b1a97880987127df248818f295da374a7c7d30950e3ad696f5ccb8c59fe274d4c3a5a3da65c35802d5c00d11be0936498ff4130fb61853bf9f0e8f28d446d612478edf050ebf826a293cd6941dacf40aea5482b74555c1daf052903e7cf6e5d5084842a47e80f31a11d3d542d3cdb4fa9dc20c9ce27f9b2c04fd31a79e1affd503316852073336dd8f446690c08335a93f8e19777ae4441d2d1dd37acd8039fae938f7eaf1a3173c5bd21e1b507d9522b517cd3dc0709bbbad11e0a7ca1f7bc7b8c40ecc20d765227b34d46d9c00c3ce928c1c561f4147f7e4ab975c9a8dc6bb1e10dea990b9a88abecf32046c5d52ea9f8025ce657d91ef35670c516df3d8e1c4f34fa6c4c90a3bb067981d380b3af65bf3273be699ff3831c62ce85de36f03b51f5e767
|
||||||
92
_posts/2019-06-22-counter.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 如何自己写一个博客计数器
|
||||||
|
tags: [计数器]
|
||||||
|
---
|
||||||
|
|
||||||
|
都怪LeanCloud,我得自己写计数器了!<!--more-->
|
||||||
|
|
||||||
|
# 事件起因
|
||||||
|
我之前用的博客计数器是用的LeanCloud作为后台制作的计数器,然后嘛……代码是抄的。结果最近[LeanCloud凉了](https://blog.avoscloud.com/6841/),这让我无法忍受,之前的代码我也看不懂,改也不会改……
|
||||||
|
那好吧,我只好自己写计数器了。
|
||||||
|
于是我花了很长时间,自己写了一个计数器,另外还得把原来的计数器信息转移过来……
|
||||||
|
|
||||||
|
# 使用方法
|
||||||
|
## 前端部分
|
||||||
|
主页显示点击数:
|
||||||
|
```html
|
||||||
|
{% raw %}Hits: <span id="{{ post.url }}" class="visitors-index" >Loading...</span>{% endraw %}
|
||||||
|
```
|
||||||
|
内页显示点击数:
|
||||||
|
```html
|
||||||
|
{% raw %} Hits: <span id="{{ page.url }}" class="visitors" >Loading...</span>{% endraw %}
|
||||||
|
```
|
||||||
|
JS代码:(需要Jquery)
|
||||||
|
```javascript
|
||||||
|
var auxiliaryHost = "你的域名";
|
||||||
|
function showHitS(hits){
|
||||||
|
$.get(auxiliaryHost+"/counter.php?action=show&id="+hits.id,function(data){
|
||||||
|
hits.innerHTML=Number(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function showHitCount() {
|
||||||
|
var visitors=$(".visitors-index");
|
||||||
|
for(var i = 0; i < visitors.length; i++){
|
||||||
|
showHitS(visitors[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
function addCount() {
|
||||||
|
var visitors=$(".visitors");
|
||||||
|
$.get(auxiliaryHost+"/counter.php?action=add&id="+visitors[0].id,function(data){
|
||||||
|
visitors[0].innerHTML=Number(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if ($('.visitors').length == 1) {
|
||||||
|
addCount();
|
||||||
|
} else if ($('.visitors-index').length > 0){
|
||||||
|
showHitCount();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
2021.03.23更新:修复了一些BUG并且支持异步了
|
||||||
|
|
||||||
|
## 后端部分
|
||||||
|
MySQL建表:
|
||||||
|
```sql
|
||||||
|
CREATE TABLE `counter` (
|
||||||
|
`url` char(50) NOT NULL,
|
||||||
|
`counter` int(11) NOT NULL,
|
||||||
|
UNIQUE KEY `url` (`url`)
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
PHP:
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
header('Access-Control-Allow-Origin: *');
|
||||||
|
$db = new PDO("mysql:host=MySQL地址;dbname=数据库名", "用户名", "密码", array(PDO::ATTR_PERSISTENT => true));
|
||||||
|
|
||||||
|
if (isset($_GET['id'])){
|
||||||
|
$hid = (string)md5($_GET['id']);
|
||||||
|
} else {
|
||||||
|
header("HTTP/1.1 301 Moved Permanently");
|
||||||
|
header("Location: https://mabbs.github.io");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
$select = $db->prepare("SELECT IFNULL((SELECT `counter` FROM `counter` WHERE `url` = ?), 0) count");
|
||||||
|
$select->execute(array($hid));
|
||||||
|
$counter = $select->fetch(PDO::FETCH_ASSOC)['count'];
|
||||||
|
if (isset($_GET['action'])){
|
||||||
|
if ($_GET['action'] == "add") {
|
||||||
|
$counter = $counter + 1;
|
||||||
|
$insert = $db->prepare("INSERT INTO `counter` (`url`, `counter`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `counter` = ?");
|
||||||
|
$insert->execute(array($hid, $counter, $counter));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo $counter;
|
||||||
|
```
|
||||||
|
2022.07.26更新:之前的代码实在是太垃圾了,现在最起码PHP也会的差不多了,稍微优化一下。
|
||||||
|
|
||||||
|
# 结果
|
||||||
|
看来还是自己写代码放心,至少服务是自己维护的,不像垃圾LeanCloud坏掉之后我就无能为力了……
|
||||||
|
不过说实话我根本不会JS(虽然我之前说我学这个),编写之中遇到了不少问题,所以在此感谢各位帮助我的各位大佬们,让我最终完成了这个计数器。
|
||||||
100
_posts/2019-06-24-up.md
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 如何利用MySQL数据库制作一个图站
|
||||||
|
tags: [MySQL, 数据库, 图站, PHP]
|
||||||
|
---
|
||||||
|
|
||||||
|
最近白嫖了一个500GB的数据库,想想怎么利用一下?<!--more-->
|
||||||
|
|
||||||
|
# Talk is cheap,show me the code
|
||||||
|
|
||||||
|
数据库建表:
|
||||||
|
```sql
|
||||||
|
CREATE TABLE `FileUP` (
|
||||||
|
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`Name` text NOT NULL,
|
||||||
|
`File` longblob NOT NULL,
|
||||||
|
`Size` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`ID`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
|
||||||
|
```
|
||||||
|
|
||||||
|
PHP代码:
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
$con=mysqli_connect("数据库地址","用户名","密码","数据库名");
|
||||||
|
if (mysqli_connect_errno($con))
|
||||||
|
{
|
||||||
|
die("连接 MySQL 失败: " . mysqli_connect_error());
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $_GET[ID] != '' ) {
|
||||||
|
header('Access-Control-Allow-Origin: *');
|
||||||
|
$sql = "SELECT * FROM `FileUP` WHERE `ID` = '".addslashes($_GET[ID])."' ";
|
||||||
|
$result = $con->query($sql);
|
||||||
|
if ($result->num_rows > 0) {
|
||||||
|
while($row = $result->fetch_assoc()){
|
||||||
|
Header ( "Content-type: application/octet-stream" );
|
||||||
|
Header ( "Accept-Ranges: bytes" );
|
||||||
|
Header ( "Accept-Length: " . $row["Size"] );
|
||||||
|
Header ( "Content-Disposition: attachment; filename=" . $row["Name"] );
|
||||||
|
echo $row["File"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header('HTTP/1.1 404 NOT FOUND');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<title>Mayx图床</title>
|
||||||
|
<h1>Mayx图床</h1><hr>
|
||||||
|
请选择需要上传的文件
|
||||||
|
<form enctype="multipart/form-data" method="post" action="">
|
||||||
|
<input type="file" name="File" />
|
||||||
|
<input type="submit" name="submit" value="submit" />
|
||||||
|
</form>
|
||||||
|
<br />';
|
||||||
|
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {
|
||||||
|
$error = $_FILES['File']['error'];
|
||||||
|
$tmp_name = $_FILES['File']['tmp_name'];
|
||||||
|
$size = $_FILES['File']['size'];
|
||||||
|
$name = $_FILES['File']['name'];
|
||||||
|
print("\n");
|
||||||
|
if ($error == UPLOAD_ERR_OK && $size > 0) {
|
||||||
|
$fp = fopen($tmp_name, 'r');
|
||||||
|
$content = fread($fp, $size);
|
||||||
|
fclose($fp);
|
||||||
|
$content = addslashes($content);
|
||||||
|
$sql = "INSERT INTO `FileUP` (`Name`, `File`, `Size`)
|
||||||
|
VALUES ('".$name."', '".$content."', '".$size."');";
|
||||||
|
$con->query($sql);
|
||||||
|
$sql = "select @@identity;";
|
||||||
|
$result = $con->query($sql);
|
||||||
|
while($row = $result->fetch_assoc()) {
|
||||||
|
echo '上传完成,文件下载地址:<a href="//'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."?ID=".$row['@@identity'].'" >'.$_SERVER['HTTP_X_FORWARDED_PROTO'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."?ID=".$row['@@identity'].'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo "文件上传错误!";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<hr />
|
||||||
|
<center><a href="https://mabbs.github.io/">By Mayx</a></center>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
mysqli_close($con);
|
||||||
|
```
|
||||||
|
|
||||||
|
# 缺点
|
||||||
|
~~MySQL保存文件有限制,好像只能存16MB左右😓~~(改max_allowed_packet就可以了)
|
||||||
|
另外就是断点续传的问题,这个问题我回头再想一想吧。
|
||||||
|
|
||||||
|
# 演示(随时GG)
|
||||||
|
<https://mayx.leanapp.cn/up.php>
|
||||||
|
|
||||||
|
# 下一步改进的打算
|
||||||
|
~~想搞成切片上传,这样就没有文件大小上传的限制了。
|
||||||
|
不过这个好像得前端支持,先放个链接在这里吧:<https://github.com/fex-team/webuploader>~~
|
||||||
|
不打算改进了……
|
||||||
39
_posts/2019-07-01-mabbs.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 重建MaBBS的计划
|
||||||
|
tags: [MaBBS, 重构]
|
||||||
|
---
|
||||||
|
|
||||||
|
这就是所谓的只擅长建立计划吧(笑)<!--more-->
|
||||||
|
|
||||||
|
# 关于计划
|
||||||
|
重构计划:[Mabbs重构计划](https://github.com/users/Mabbs/projects/1)
|
||||||
|
需要重构的项目:[Mabbs](https://github.com/Mabbs/Mabbs)
|
||||||
|
|
||||||
|
## 关于这个项目
|
||||||
|
这个项目是我初中的时候就开始写的,当时我在网络上看到了一种很有意思的论坛,叫做Telnet BBS,貌似以前有名的高校都搞这个东西。那时刚好在用一个极其破烂的手机(Mem:256MiB,CPU:Spreadtrum SP8810,Rom:512MiB)在那里学着写Shell([关于这一段历史](/2019/02/01/history.html#linux-shell时期))。看完Telnet BBS的介绍之后,我膨胀了,我觉得以我当时的水平,肯定能写出来,于是我从此走上了填这个万年巨坑的不归路。
|
||||||
|
当时我不但膨胀,而且傻,把一个有着很明显的注入漏洞的那么一个BBS写出来之后居然还发到当时Bilibili开的一个类似贴吧一样的东西里(现在已经没了),那时候每个路由器还是动态公开IP的,于是我就那么放在了网上,丝毫不担心有人会拿它当跳板机(是我想多了LOL)
|
||||||
|
在编写之中,我了解到了CGI,于是它就可以既能用网页版,又能用命令行版。
|
||||||
|
到现在为止,这个BBS仍然有很严重的注入漏洞……而且小时候写代码也没什么规范,基本上是边学边写,于是过了一个高三没写,那个代码我是一个字也看不懂了23333
|
||||||
|
|
||||||
|
# 现在重构的打算
|
||||||
|
本来是想写在那个Project里的,但是后来想了想,还是写成博客比较好,那个东西似乎不太适合我(就是想水一篇啦)
|
||||||
|
|
||||||
|
## 1. FastCGI
|
||||||
|
我很早以前就想把这个破烂CGI改成FastCGI,但是网上找了半天,基本上也没看懂什么。不过后来用上了服务器,学了Nginx,才明白,原来所谓的FastCGI就相当于是自己又写了一个服务器软件,只是这个比较简单,只是它不再是执行后就结束的程序,而是在后台挂着,继续等待下一个请求。而Nginx起到的作用就是提高这个自制服务器的安全性,另外可以提前输出,保证速度,其实说白了就是反向代理。这次看看重构能不能加一个这个功能。
|
||||||
|
|
||||||
|
## 2. 前后端分离
|
||||||
|
最近好像挺流行这个的,就是要用Javascript,不过这个我现在也学的差不多了,不像以前,整个BBS里没有一句Javascript。
|
||||||
|
这样干还有一个好处,就是我可以不限定客户端,假如我以后学了其他语言,就可以利用统一的API调用了
|
||||||
|
|
||||||
|
## 3.POSIX
|
||||||
|
这可是我写的东西的一大优点,我写的BBS就算是只有一个Busybox也能运行,保证了在任何一台设备上都能完美运行,而且一句sed、grep、awk都没有用,就连这三件套没有都能用哦!
|
||||||
|
|
||||||
|
## 4. Hash&Session
|
||||||
|
之前我写的BBS全部都是明文保存密码的,不过现在我学了那么多关于网络安全的知识,至少Hash还是要有的。不过我不打算用其他工具,我要自己写一套!之前确实是试了试Hash,不过感觉好像又不太对……回头再仔细查一下吧。
|
||||||
|
之前BBS登录时密码都是放在Cookie里的,现在想想那真是太蠢了,本来这个BBS就全都是XSS漏洞,再明文放密码那不就是想要谁的密码都可以吗?(虽然开了HTTPONLY)不过为了提高安全性,我搞了一个类似于Session的东西,但是我不太会写随机数,所以感觉这个Session似乎更不安全了……
|
||||||
|
|
||||||
|
……
|
||||||
|
|
||||||
|
# 真正的问题
|
||||||
|
先想办法下决心写第一句话吧!
|
||||||
37
_posts/2019-07-02-encmail.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 制作分布式加密邮件系统的计划
|
||||||
|
tags: [分布式, 加密, 邮件, 计划]
|
||||||
|
---
|
||||||
|
|
||||||
|
一个计划还没开始,又开始另一个计划了……<!--more-->
|
||||||
|
|
||||||
|
# 计划原因
|
||||||
|
之前用了Telegram聊天,里面有一个私密通信的功能。听说这个功能可以让服务端没法知道使用者发送的信息。不过Telegram在国内使用限制比较多,所以我打算用HTML+Javascript+PHP+MySQL写一套自己的私密通信系统。
|
||||||
|
但是As We All Know,某些国家有网络审查,提供这种服务的肯定会被审查的。既然我们要做这个东西,就不能让它不稳定。所以我想把这个项目搞成分布式的那种,确保通信可以成功。(来自Mastodon的思路)
|
||||||
|
|
||||||
|
## Q&A
|
||||||
|
1. 为什么使用PHP?
|
||||||
|
之所以用PHP作为后端语言的原因呢…… ~~当然因为PHP是世界上最好的语言!(被打死)~~ 因为PHP的程序好搭建,而且很多虚拟主机商都用的是PHP,这样即使小白也能搭建,就能让分布式节点更多了。 ~~(明明主要原因是我只会PHP 23333)~~
|
||||||
|
2. 为什么我要做成邮件系统而不是聊天系统呢?
|
||||||
|
因为聊天就要用Websocket或者是AJAX之类的,但是我不会……我只能把信息都存在服务器里,有人访问再显示出来……
|
||||||
|
3. 已经有PGP了,为什么还要重复造轮子呢?
|
||||||
|
因为PGP是软件,小白用起来不太方便,这个是网站,可能相对更简单一些。 ~~(重复造轮子能有什么理由)~~
|
||||||
|
|
||||||
|
# 项目技术原理
|
||||||
|
1. 所谓的私密通信主要用的就是非对称加密,比如说RSA什么的。所以这个项目同样如此,也使用RSA作为主要加密算法。
|
||||||
|
2. RSA虽然很不错,但是似乎加密速度比较慢?(我看HTTPS上介绍的是这样)所以内容用AES加密,用随机数做密码,一方用公钥去加密这个密码,另一方用私钥解密获得密码,然后再利用这个密码进行对称加密传输(和HTTPS差不多)。
|
||||||
|
3. 如果上述操作都是服务端进行,那这些就都没什么意义了,所以我们要在客户端进行。像Javascript进行加密完全没有问题,所以除了传输,其他加密都是在浏览器上进行。
|
||||||
|
|
||||||
|
# 项目细节
|
||||||
|
为了方便通信,公钥是要留在服务器上的,所以要搞一个用户系统,存储用户的公钥。在注册的过程中公私钥生成都是在客户端进行,确保服务端得不到用户的私钥,注册的过程中要将用户名和公钥上传至服务器保存。这就是为什么要用到MySQL。
|
||||||
|
登录时,先输入用户名,服务器使用用户名查找到对应的公钥,然后生成一个随机数,用公钥加密,发送给客户端,客户端用私钥解密,获得随机数,返回给服务器进行登录。
|
||||||
|
私钥登录后要持续保存,这时肯定不能用Cookie,我们可以用localStorage,然后客户端一定要做好防XSS,不然一切都没有了。
|
||||||
|
在发送的时候,我们可以搞一个类似Mastodon的用户名,两个@实在是太蠢了,就和E-mail一样,就搞成user@example.com的形式吧
|
||||||
|
在发送时客户端先检查对方服务器能否连接,如不能则测试通过服务器连接,如果服务器连接失败再使用其他节点连接(服务器内置),如果还是不行,用户可以自行输入节点,还是不行,投递失败。
|
||||||
|
连接成功后对方服务器查询对应用户的公钥,返回给客户端,客户端用这个公钥加密AES密码,用AES密码加密内容,然后再传给对方服务器保存。
|
||||||
|
查看邮件就用私钥解密AES密码,然后解密内容。
|
||||||
|
|
||||||
|
# 问题
|
||||||
|
如果对方服务器被攻陷,公钥被改成攻击者的,那不就没用了吗?虽然可以用指纹解决,但是这对小白来说似乎有些困难……HTTPS用的是第三方权威解决这个问题,我们就没办法了……
|
||||||
|
最大的问题是,什么时候开始动工?(笑)
|
||||||
23
_posts/2019-07-15-encmail.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: EncMail-Project Part 1 - 准备阶段
|
||||||
|
tags: [分布式, 加密, 邮件, 计划]
|
||||||
|
---
|
||||||
|
|
||||||
|
我是不会承认自己咕咕咕的!<!--more-->
|
||||||
|
参照:[初计划](/2019/07/02/encmail.html)
|
||||||
|
|
||||||
|
# 准备的内容
|
||||||
|
最终经过多方研究,我打算用[Web Crypto API](https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Crypto_API)作为主要的实现方法。
|
||||||
|
不过用这种API的兼容性并不怎么好……我的博客之所以用了各种各样的JS库也是为了兼容性 ~~(是不会写吧233333)~~
|
||||||
|
其实主要原因是因为我在网上搜不到哪个JS库能生成密钥对……之前有看到过有一个名叫jsencrypt的库,可惜只能加解密,不能生成密钥对……
|
||||||
|
说实话我从来都没有用过WebAPI,所以还得好好看看文档。但是这个破烂文档连例子都没有,这让人很难办,搜也搜不到有用的内容,而且我的英语并不算好,也不太习惯上[Stack Overflow](https://stackoverflow.com/) ~~(不行,我要把锅推给某国的网络审查)~~ 。正是如此,这个项目制作起来可能会相当花时间。
|
||||||
|
另外界面我打算用MDUI,那个文档看起来还挺简单。本来我没打算做一个好看的页面,就像之前制作的[Iwara Downloader](/2019/04/13/iwara.html)一样,打算套个表格完事。但是既然这个UI看起来挺简单,那就试试这个吧,反正我也不考虑兼容性问题了,WebAPI都用上了,再加一个这个也不算什么吧。
|
||||||
|
|
||||||
|
# 对计划的补充
|
||||||
|
计划的名称我打算命名为EncMail-Project ~~(看起来有点俗……)~~ ,不过这都不重要。
|
||||||
|
关于登录方面,我后来又想了想,没有人会记私钥的,所以为了方便使用,我打算通过AES加密私钥,和公钥一起上传到服务器上保存。登录时把加密的私钥和被公钥加密的令牌下载下来,然后输入密码解密获得私钥并解密令牌。
|
||||||
|
而之前想到的公钥被修改的问题,我想了想,那还是加上指纹吧(就是Hash啦),用SHA-256算法算出公钥的指纹,然后发送者在发送时自己对照一下就可以了(好像是`SubtleCrypto.digest()`?emmmm……这个文档没有翻译……)。
|
||||||
|
另外为了安全,私钥我打算存到`sessionStorage`里,以减小私钥泄露的危险。
|
||||||
|
|
||||||
|
今天就先到这里吧!
|
||||||
16
_posts/2019-07-25-college.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Mayx终于考上大学了
|
||||||
|
tags: [Mayx, 大学]
|
||||||
|
---
|
||||||
|
|
||||||
|
真是Amazing!<!--more-->
|
||||||
|
|
||||||
|
# Where am I?
|
||||||
|
这次我考到成都了,考了一个网络工程专业 ~~(说不定就成装宽带的了23333(不过中国移动是真的垃圾,就是以后装宽带也不去移动))~~
|
||||||
|
不过我看这个专业的以后当运维的比较多,那如果真是这样,以后每年的昨天(7月24日)就可以过节了23333
|
||||||
|
|
||||||
|
# How about it?
|
||||||
|
考上了作为一个原三本的院校,其实也不能算很好,但是相比于[经常犯智障的我](/2019/05/30/exam.html),也算是一个不错的结果了。
|
||||||
|
|
||||||
|
总之,以后我应该就能了解更多关于网络方面的知识了。
|
||||||
20
_posts/2019-08-05-blilblil.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 记一次办理22卡的经历
|
||||||
|
tags: [Mayx, 大学]
|
||||||
|
---
|
||||||
|
|
||||||
|
我生气了!<!--more-->
|
||||||
|
|
||||||
|
# What happened?
|
||||||
|
某天,Mayx正在使用Bilibili,手抖按到了一个广告上,看起来好像是办理Bilibili的2233和小电视卡的。Ta让我答了几道题之后把我的个人信息骗走了~~(还不是自己主动输进去的2333)~~
|
||||||
|
之前我办过米粉卡,那个是真的不错,三个月流量不限,而且一分钱不花。我看这个卡貌似提到了免费,所以就办理了。
|
||||||
|
过了一两天,中国联通给我打来了电话,让我带着身份证下楼办卡,我也没多想,就下去了。
|
||||||
|
没两分钟,我就被骗走了50CNY(QAQ)
|
||||||
|
原来所谓的免费只是首月免费,广告里可没提要多交钱啊!
|
||||||
|
不过算了,既然已经办了,那就用吧,未来的五个月我可以随便看番了……这样想的你可真是大错特错,要知道免流卡用够40GB的流量就会限流,速度慢到看360p都会卡,我平时都看的是1080p的视频,看大概2小时就要用掉1GB的流量,一个月可不只有40个小时,我每天如果看四小时就要120小时,即60GB,那么之后的这几十个小时就只能看360p还卡的视频了……
|
||||||
|
总的算下来就是每月10CNY不限流看Biliblil的视频,5个月以后我就把这张卡扔了吧。
|
||||||
|
|
||||||
|
# 感想
|
||||||
|
~~不错,广告你赢了我一次,但总有一天你一定会后悔!~~(我的小米手机的广告已经被我铲除干净了)
|
||||||
|
真希望有一天所有的广告用户都有关闭的权利!(VIP除外)
|
||||||
21
_posts/2019-08-17-memory.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 记一次悲惨的加装内存的事故
|
||||||
|
tags: [悲惨, 事故, 内存]
|
||||||
|
---
|
||||||
|
|
||||||
|
这……大概就是命运吧……QAQ<!--more-->
|
||||||
|
|
||||||
|
# 悲惨的开端
|
||||||
|
因为学校要求使用8GiB运存的电脑(难不成是想用VS?),然后我的笔记本电脑只有4GiB。我考虑了一下,买一条内存条也不贵,于是我在某宝上买了一个和我笔记本电脑内存型号相同的内存条。
|
||||||
|
在到货的前几分钟,我就开心的把电脑主板提前拆出来了,等我一拿到取件码,就去把内存条取了回来 ~~(顺便得到一堆泡泡纸,血赚23333)~~
|
||||||
|
等我安好内存条,我试了试裸板开机,不错,看来至少主板没有被我搞坏,然后我连上键盘和显示器之后,BIOS也正确的读取到了内存条,看来是成功了。
|
||||||
|
我这么边想着就边把电脑往回装,装着装着结果电池接口突然开始冒烟,吓得我立即把电池拔了,之后我继续装,总算是没看到更多异常情况。
|
||||||
|
等我全部安装完成后电脑倒是也正常开机了,操作系统也成功的读取到了内存,而且是同一型号的内存条,应该也成功的组成了双通道吧,我试了试整体电脑的操作,倒是确实比之前流畅了一些。
|
||||||
|
|
||||||
|
# 噩梦开始
|
||||||
|
过了几个小时之后,我发现电池灯还在显示充电状态,这时我慌了,我打开电脑发现充了半天电,电量没有一点点变化,又过了几个小时,电池灯开始不停的闪烁,看来是翻车了。后来我把电池又重新安装了一遍,但是貌似还是没有什么改变,但是把外接电源拔掉仍然可以正常使用,所以看来是充电芯片在之前冒烟的事故中灰飞烟灭了QAQ。
|
||||||
|
|
||||||
|
# 感想
|
||||||
|
我自认为我安装的时候也没有什么可能会让电脑出现这种问题的操作啊……难不成是因为我先安装了电池的问题?也许电脑在插完所有其他线的时候不应该插电池线吧…… ~~总之,这就是命运吧……QAQ~~
|
||||||
|
最近运气都不怎么好,希望这糟糕的运气不会影响我接下来科目二的考试……
|
||||||