feat: Enable foxsay

This commit is contained in:
SouthFox 2022-08-02 07:36:34 +08:00
parent b604e5ee14
commit b9085ba8fa
5 changed files with 46 additions and 94 deletions

View file

@ -3,21 +3,11 @@ title: 狐说
date: 2021-07-11 17:45:57
---
<html>
<link rel="stylesheet" href="/css/foxsay.css" media="screen" type="text/css">
<main id="app">
<aside>
</aside>
<section class="item" v-for="item in contents" v-cloak>
<bb v-html='item.attributes.content'></bb>
<time v-html:datetime="item.attributes.time">{{item.attributes.time}}</time>
</section>
<div class="load-ctn">
<button class="btn btn-default " v-on:click="loadMore" v-if="contents" v-cloak>加载更多</button>
<p class="tip" v-else>加载中……</p>
<main id='app'>
<div id="foxsay">
</div>
</main>
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/leancloud-storage@4.5.3/dist/av-min.js"></script>
<center><a target="_blank" href="https://foxsay.southfox.me/@SouthFox" type="button" class="btn btn-default"><i class="fa fa-paw"></i>到原始站点查看</a></center>
</main>
<script src="../js/rss-parser.min.js"></script>
<script src="../js/foxsay.js"></script>
</html>

View file

@ -23,6 +23,9 @@ menu:
- title: 友链
url: friends
intro: "朋友们"
- title: 狐说
url: foxsay
intro: "狐狸怎么叫?"
- title : 开往
url: travellings
intro: "一群狼走得更远"
@ -40,6 +43,10 @@ links:
url: /rss2.xml
intro: "Subscribe me."
icon: "fas fa-rss"
- title: Foxsay
url: /foxsay
intro: "OWO"
icon: "fa fa-paw"
- title: 开往
url: https://travellings.link
intro: "一群狼走得更远"

View file

@ -31,10 +31,6 @@
display: none;
}
body,
button {
font-family: 'Noto Serif SC', serif;
}
aside {
font-weight: 300;
@ -60,11 +56,15 @@ footer {
font-weight: 300;
font-style: normal;
line-height: 1.8rem;
background: #000;
padding: 10px 20px;
border-radius: 5px;
box-shadow: 0 1px 6px rgba(32, 33, 36, 0.28);
margin-top: 20px;
border-top-color: coral !important;
border-top: 6px solid;
text-align: justify;
background: #000;
white-space: pre-line;
}
.item a {
@ -77,17 +77,3 @@ time {
color: #bbb;
font-size: 15px;
}
bb {
font-family: 'Noto Serif SC', serif;
font-size: 20px;
}
.center-text {
text-align: center;
}
.load-ctn {
margin-top: 15px;
width: 100%;
}

View file

@ -1,60 +1,19 @@
var {
Query
} = AV;
AV.init({
appId: "hINvYWepO1gnhcNIPEycw7o5-MdYXbMMI", //你的 leancloud 应用 id (设置-应用keys-AppID
appKey: "9PFMoeAb7yW62fAyNYdVDHAQ", //你的 leancloud 应用 AppKey (设置-应用keys-AppKey
});
var query = new AV.Query('content');
var app = new Vue({
el: '#app',
data: {
page: 0,
count: 0,
contents: []
},
methods: {
loadMore: function(event) {
getData(++this.page);
let parser = new RSSParser();
parser.parseURL('https://foxsay.southfox.me/@SouthFox.rss', function(err, feed) {
if (err) throw err;
for (let i = 0; i < 10; i++) {
const entry = feed.items[i];
printPost(entry);
}
}
})
});
function urlToLink(str) {
var re = /(http|ftp|https):\/\/[\w-]+(.[\w-]+)+([\w-.,@?^=%&:/~+#]*[\w-\@?^=%&/~+#])?/g;;
function printPost(entry) {
section = document.createElement("section");
section.classList.add('item');
popContent = entry.contentSnippet;
str = str.replace(re, function(website) {
if (str.indexOf("cf-ipfs") != -1 ) {
return "<img src='" + website + "' alt='图片'></img>"
} else {
return "<a href='" + website + "' target='_blank'> <i class='iconfont icon-lianjie-copy'></i>链接 </a>";
}
});
return str;
}
section.innerHTML = popContent;
function getData(page = 0) {
query.descending('createdAt').skip(page * 20).limit(20).find().then(function(results) {
if (results.length == 0) {
alert('无了。')
} else {
let resC = results;
reqData = false;
resC.forEach((i) => {
let dateTmp = new Date(i.createdAt);
i.attributes.content = "<p>" + urlToLink(i.attributes.content) + "</p>";
i.attributes.time = `${dateTmp.getFullYear()}-${(dateTmp.getMonth() + 1) < 10 ? ('0' + (dateTmp.getMonth()+1)) : dateTmp.getMonth()+1}-${(dateTmp.getDate() + 1) < 10 ? ('0' + dateTmp.getDate()) : dateTmp.getDate()} ${(dateTmp.getHours() + 1) <= 10 ? ('0' + dateTmp.getHours()) : dateTmp.getHours()}:${(dateTmp.getMinutes() + 1) <= 10 ? ('0' + dateTmp.getMinutes()) : dateTmp.getMinutes()}`;
app.contents.push(i);
})
}
}, function(error) {});
}
getData(0);
query.count().then(function(count) {
app.count = count;
}, function(error) {});
blogs = document.getElementById('foxsay');
blogs.append(section);
}

File diff suppressed because one or more lines are too long