从以前的帖子中获取当天报价的脚本

Script to acquire quote of the day from previous posts?

本文关键字:获取 脚本      更新时间:2023-09-26

在过去的4个小时里,我一直在尝试为我的tumblr博客上的"每日报价"显示编写脚本。我是javascript的初学者。那么,你能帮我使用javascript,并告诉我我需要改变什么才能让它工作吗?另外,我将如何能够将脚本生成的文本格式化为类似于?:

<script type="text/javascript">
    var now = new Date();
    var todayAtMidn = new Date(now.getFullYear(), now.getMonth(), now.getDate());
    var quoteTag = getElementsByTagName("div")
    for (var i = 3; i < quoteTag.length; i++)`
    var quoteDate = document.getElementsByTagName("div");
    for (var i = 3; i < quoteDate.length; i++) {
        if ((quoteDate[i].getAttribute("class") == "date") && (quoteTag[i].getAttribute("class") == "tag")) {
            if ((todayAtMidn.getTime() == quoteDate.getTime()) && (quoteTag == 'QOT')) {
                document.write("Quote Of the Day:{Quote}")
            } else {
                document.write('Thank God, its a new day!');
            }
        } else {
            document.write('Thank God, its a new day!')
        }
    }
</script>

我试图做的是从我的一个普通报价帖子中获取内容/文本,前提是报价帖子具有标签"QOT"并且是在当前日期发布的(所以今天)。然后,文本/内容将在网站的特殊部分显示为"每日报价"。

这是我的网站: teamnigeria.tumblr.com

好吧,让我们从:

  1. 最初

    (function () {
    var post=null;
    
  2. 循环访问当前页面上的帖子:

    var posts=getPosts();
    var midnight_today=getMidnight();
    for(var i=0, l=posts.length; i<l; i++) {
    
  3. 当我们找到带有标签的第一篇帖子时停止 QOT 今天发布

       var post_time = getPostTime(post[i]);
       if (postHasTag(posts[i], 'QOT') && post_time > midnight_today) {
           post = posts[i];
           break;
       }
    }
    
  4. 如果我们找不到帖子:将引用设置为"今天没有选择报价"

    if (post === null) { 
        setQuote("No quote picked for today");
    } else {
    
  5. 否则:将引用设置为我们找到的帖子的文本

        setQuote(getQuoteFromPost(post));
    }
    })();
    

如果定义了所有未定义的函数,这将按照您的要求进行操作。


由于 tumblr 页面上的所有帖子都有类post,而引用帖子有类quote所以给定 jQuery:

(function () {
  var quotes = $("div.post.quote");
  if (quotes.length > 0) {
    $('div#header > h8').empty().append(
      quotes.first().find("div.content > blockquote").clone()
    );
  }
})();

将每日引号替换为页面上的第一个引号,如果没有每日引号,则div#header > h8的内容将保留为占位符内容。如果这也要检查日期,则需要解析div.post.quote > div.date的内容并比较日期。