This commit is contained in:
✨小透明・宸✨
2019-06-06 22:02:52 +08:00
parent e7fc435873
commit 5c071073da
2 changed files with 42 additions and 22 deletions

View File

@@ -8,9 +8,34 @@
--- ---
**2019.5.14 新功能:输入微信公众号文章链接,自动获取文章标题和封面** ### 更新记录
相关后端代码参见文件 `get_article_info.php` #### TODO
* 添加评论
* ~~7.x 版微信的白色界面~~什么时候张小龙学会做产品了就考虑加上( ゚ 3゚)
#### 2019.6.6
根据 [Issue #4](https://github.com/TransparentLC/WechatMomentScreenshot/issues/4) 修正了时间显示的问题。
* 截图日期和发表日期在同一天,时间显示为`**:**`
* 截图日期在发表日期前一天,时间显示为`昨天 **:**`
* 其他情况,时间显示为`****年**月**日 **:**`
现在可以用短链接 [https://git.io/WMS](https://git.io/WMS) 打开本工具了~欢迎分享给有需要的人(`ヮ´ )
~~也欢迎请小透明喝肥宅快乐水(\*´∀`)~~
#### 2019.5.14
新功能:输入微信公众号文章链接,自动获取文章标题和封面。
* 相关后端代码参见文件 `get_article_info.php`
#### 2019.3.1
新功能:生成发表纯文字或图片的截图。
--- ---
@@ -18,19 +43,13 @@
一个因为不喜欢也不想往朋友圈发某些不得不发的废文而做出来的摸鱼产物。 一个因为不喜欢也不想往朋友圈发某些不得不发的废文而做出来的摸鱼产物。
### 为什么生成的截图不是iOS版/7.x版微信的界面样式 ### 为什么生成的截图不是 iOS 版 / 7.x 版微信的界面样式?
因为手上只有猴机以及并不想用7.x版的微信。 因为手上只有猴机,以及并不想用 7.x 版的微信。
### 能不能生成纯文字/转发图片的截图?
~~咕了~~
2019.3.1 已加入~( ´∀`)
### 生成的截图中,文字部分能否出现表情符号? ### 生成的截图中,文字部分能否出现表情符号?
微信中除Emoji之外的其它表情符号实际上是特定的文本复制后粘贴到别处时就可以看到在微信中则显示为表情符号。 微信中除 Emoji 之外的其它表情符号实际上是特定的文本,复制后粘贴到别处时就可以看到,在微信中则显示为表情符号。
比如<img src="https://ae01.alicdn.com/kf/HTB1kEKaXe3tHKVjSZSg7604QFXas.png" style="width: 1em;" />这个表情,从简体中文版微信中发送的实际上是`[再见]`,繁体中文是`[再見]`,英文是`[Bye]`。即使不选择表情符号而是手动输入`[再见]``[再見]``[Bye]`(任选一个输入即可,和微信的语言设置无关),发送后它们都会显示为<img src="https://ae01.alicdn.com/kf/HTB1kEKaXe3tHKVjSZSg7604QFXas.png" style="width: 1em;" /> 比如<img src="https://ae01.alicdn.com/kf/HTB1kEKaXe3tHKVjSZSg7604QFXas.png" style="width: 1em;" />这个表情,从简体中文版微信中发送的实际上是`[再见]`,繁体中文是`[再見]`,英文是`[Bye]`。即使不选择表情符号而是手动输入`[再见]``[再見]``[Bye]`(任选一个输入即可,和微信的语言设置无关),发送后它们都会显示为<img src="https://ae01.alicdn.com/kf/HTB1kEKaXe3tHKVjSZSg7604QFXas.png" style="width: 1em;" />

View File

@@ -290,16 +290,16 @@
<div id="configWebsite" style="display: none;"> <div id="configWebsite" style="display: none;">
<div class="mdui-textfield"> <div class="mdui-textfield">
<label class="mdui-textfield-label">转发文章标题</label> <label class="mdui-textfield-label">网页标题</label>
<input id="configArticleTitle" class="mdui-textfield-input" type="text" value="还不会用Google的你就要被时代淘汰了" /> <input id="configArticleTitle" class="mdui-textfield-input" type="text" value="还不会用Google的你就要被时代淘汰了" />
</div> </div>
<div class="mdui-row"> <div class="mdui-row">
<div class="mdui-col-xs-6"> <div class="mdui-col-xs-6">
<button class="mdui-btn mdui-ripplet mdui-btn-block mdui-text-color-theme-accent" onclick="javascript: document.getElementById('configArticleIcon').click();">上传文章封面</button> <button class="mdui-btn mdui-ripplet mdui-btn-block mdui-text-color-theme-accent" onclick="javascript: document.getElementById('configArticleIcon').click();">上传网页图标</button>
<input id="configArticleIcon" type="file" style="display: none;" /> <input id="configArticleIcon" type="file" style="display: none;" />
</div> </div>
<div class="mdui-col-xs-6"> <div class="mdui-col-xs-6">
<button class="mdui-btn mdui-ripple mdui-btn-block mdui-text-color-theme-accent" onclick="javascript: getArticleInfo();">自动获取文章标题/封面</button> <button class="mdui-btn mdui-ripple mdui-btn-block mdui-text-color-theme-accent" onclick="javascript: getArticleInfo();">自动获取公众号文章标题/封面</button>
</div> </div>
</div> </div>
<div class="mdui-textfield"> <div class="mdui-textfield">
@@ -427,6 +427,7 @@
<button id="generate" class="mdui-btn mdui-ripple mdui-color-theme-accent mdui-btn-block mdui-m-t-2">生成</button> <button id="generate" class="mdui-btn mdui-ripple mdui-color-theme-accent mdui-btn-block mdui-m-t-2">生成</button>
<button class="mdui-btn mdui-ripple mdui-btn-block mdui-text-color-theme-accent mdui-m-t-1" mdui-dialog="{target: '#donate'}">请小透明喝一瓶肥宅快乐水~(*´∀`)</button> <button class="mdui-btn mdui-ripple mdui-btn-block mdui-text-color-theme-accent mdui-m-t-1" mdui-dialog="{target: '#donate'}">请小透明喝一瓶肥宅快乐水~(*´∀`)</button>
<button class="mdui-btn mdui-ripple mdui-btn-block mdui-text-color-theme-accent mdui-m-t-1" onclick="javascript: var r = document.createRange(); document.getElementById('gitLink').style.display = 'initial'; r.selectNodeContents(document.getElementById('gitLink')); var s = document.getSelection(); s.removeAllRanges(); s.addRange(r); document.execCommand('Copy'); s.removeAllRanges(); document.getElementById('gitLink').style.display = 'none'; mdui.snackbar({message: '已复制~(=゚ω゚)='});">复制链接<span id="gitLink" style="display: none;">https://git.io/WMS</span>,分享给有需要的人~(`ヮ´ )</button>
<div id="fakeWechatMoment"> <div id="fakeWechatMoment">
<div id="topBar" class="topBar"> <div id="topBar" class="topBar">
@@ -597,7 +598,7 @@
//输入微信文章的链接,通过后端自动获取文章标题和文章封面 //输入微信文章的链接,通过后端自动获取文章标题和文章封面
function getArticleInfo() { function getArticleInfo() {
var requestDialog = new mdui.Dialog('#request'); var requestDialog = new mdui.Dialog('#request');
mdui.prompt('文章链接', function (value) { mdui.prompt('公众号文章链接', function (value) {
var xhr = new XMLHttpRequest; var xhr = new XMLHttpRequest;
xhr.open('GET', 'https://lit-inlet-66876.herokuapp.com/get_article_info.php?url=' + encodeURIComponent(value)); //获取标题和封面的服务器 xhr.open('GET', 'https://lit-inlet-66876.herokuapp.com/get_article_info.php?url=' + encodeURIComponent(value)); //获取标题和封面的服务器
xhr.onreadystatechange = function () { xhr.onreadystatechange = function () {
@@ -674,7 +675,6 @@
document.getElementById('configScreenshotDate').valueAsDate = date; document.getElementById('configScreenshotDate').valueAsDate = date;
document.getElementById('configScreenshotTimeHour').value = date.getHours(); document.getElementById('configScreenshotTimeHour').value = date.getHours();
document.getElementById('configScreenshotTimeMinute').value = date.getMinutes(); document.getElementById('configScreenshotTimeMinute').value = date.getMinutes();
date.setTime(date.getTime() - 1000 * 60);
document.getElementById('configPostDate').valueAsDate = date; document.getElementById('configPostDate').valueAsDate = date;
document.getElementById('configPostTimeHour').value = date.getHours(); document.getElementById('configPostTimeHour').value = date.getHours();
document.getElementById('configPostTimeMinute').value = date.getMinutes(); document.getElementById('configPostTimeMinute').value = date.getMinutes();
@@ -733,6 +733,7 @@
document.getElementById('configSetMultiImage1').addEventListener('change', function () { document.getElementById('configSetMultiImage1').addEventListener('change', function () {
document.getElementById('image1').style.backgroundImage = 'url(\"' + window.URL.createObjectURL(this.files[0]) + '\")'; document.getElementById('image1').style.backgroundImage = 'url(\"' + window.URL.createObjectURL(this.files[0]) + '\")';
}); });
document.getElementById('configSetMultiImage2').addEventListener('change', function () { document.getElementById('configSetMultiImage2').addEventListener('change', function () {
document.getElementById('image2').style.backgroundImage = 'url(\"' + window.URL.createObjectURL(this.files[0]) + '\")'; document.getElementById('image2').style.backgroundImage = 'url(\"' + window.URL.createObjectURL(this.files[0]) + '\")';
}); });
@@ -797,7 +798,6 @@
multiImageCount = 5; multiImageCount = 5;
} }
for (var i = multiImageCount + 1; i <= 9; i++) { for (var i = multiImageCount + 1; i <= 9; i++) {
console.log(i);
document.getElementById('image' + i).style.display = 'none'; document.getElementById('image' + i).style.display = 'none';
} }
} }
@@ -833,14 +833,15 @@
var configScreenshotDate = document.getElementById('configScreenshotDate').valueAsDate; var configScreenshotDate = document.getElementById('configScreenshotDate').valueAsDate;
configScreenshotDate.setHours(document.getElementById('configScreenshotTimeHour').value); configScreenshotDate.setHours(document.getElementById('configScreenshotTimeHour').value);
configScreenshotDate.setMinutes(document.getElementById('configScreenshotTimeMinute').value); configScreenshotDate.setMinutes(document.getElementById('configScreenshotTimeMinute').value);
var diff = configScreenshotDate.getTime() - configPostDate.getTime();
if (diff > 0 && diff < 60 * 60 * 1000) { if (document.getElementById('configScreenshotDate').valueAsDate.getTime() == document.getElementById('configPostDate').valueAsDate.getTime()) {
document.getElementById('time').innerText = Math.floor(diff / (60 * 1000)) + '分钟前'; document.getElementById('time').innerText = ((configPostDate.getHours() < 10) ? ('0' + configPostDate.getHours()) : configPostDate.getHours()) + ':' + ((configPostDate.getMinutes() < 10) ? ('0' + configPostDate.getMinutes()) : configPostDate.getMinutes());
} else if (diff > 0 && diff < 60 * 60 * 24 * 1000) { } else if (document.getElementById('configScreenshotDate').valueAsDate.getTime() - document.getElementById('configPostDate').valueAsDate.getTime() == 60 * 60 * 24 * 1000) {
document.getElementById('time').innerText = Math.floor(diff / (60 * 60 * 1000)) + '小时前'; document.getElementById('time').innerText = '昨天 ' + ((configPostDate.getHours() < 10) ? ('0' + configPostDate.getHours()) : configPostDate.getHours()) + ':' + ((configPostDate.getMinutes() < 10) ? ('0' + configPostDate.getMinutes()) : configPostDate.getMinutes());
} else { } else {
document.getElementById('time').innerText = configPostDate.getFullYear() + '年' + (configPostDate.getMonth() + 1) + '月' + configPostDate.getDate() + '日 ' + ((configPostDate.getHours() < 10) ? ('0' + configPostDate.getHours()) : configPostDate.getHours()) + ':' + ((configPostDate.getMinutes() < 10) ? ('0' + configPostDate.getMinutes()) : configPostDate.getMinutes()); document.getElementById('time').innerText = configPostDate.getFullYear() + '年' + (configPostDate.getMonth() + 1) + '月' + configPostDate.getDate() + '日 ' + ((configPostDate.getHours() < 10) ? ('0' + configPostDate.getHours()) : configPostDate.getHours()) + ':' + ((configPostDate.getMinutes() < 10) ? ('0' + configPostDate.getMinutes()) : configPostDate.getMinutes());
} }
document.getElementById('topBarTime').innerText = ((document.getElementById('configScreenshotTimeHour').value < 10) ? ('0' + document.getElementById('configScreenshotTimeHour').value) : document.getElementById('configScreenshotTimeHour').value) + ':' + ((document.getElementById('configScreenshotTimeMinute').value < 10) ? ('0' + document.getElementById('configScreenshotTimeMinute').value) : document.getElementById('configScreenshotTimeMinute').value); document.getElementById('topBarTime').innerText = ((document.getElementById('configScreenshotTimeHour').value < 10) ? ('0' + document.getElementById('configScreenshotTimeHour').value) : document.getElementById('configScreenshotTimeHour').value) + ':' + ((document.getElementById('configScreenshotTimeMinute').value < 10) ? ('0' + document.getElementById('configScreenshotTimeMinute').value) : document.getElementById('configScreenshotTimeMinute').value);
if (document.getElementById('configApp') != '') { if (document.getElementById('configApp') != '') {