{"id":25867,"date":"2025-02-20T21:19:53","date_gmt":"2025-02-20T12:19:53","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25867"},"modified":"2025-02-20T21:36:12","modified_gmt":"2025-02-20T12:36:12","slug":"%e3%83%aa%e3%82%a2%e3%83%ab%e3%82%bf%e3%82%a4%e3%83%a0rss%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89-html","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25867","title":{"rendered":"\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0RSS\u30c8\u30ec\u30f3\u30c9.html"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"ja\">\n&lt;head>\n    &lt;meta charset=\"UTF-8\">\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    &lt;title>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0RSS\u30c8\u30ec\u30f3\u30c9&lt;\/title>\n    &lt;style>\n        body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0; }\n        h1 { text-align: center; padding: 20px; background: #333; color: white; }\n        #rss-feed { max-width: 800px; margin: 20px auto; padding: 20px; background: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); }\n        .article { border-bottom: 1px solid #ccc; padding: 15px; display: flex; flex-direction: column; }\n        .article:last-child { border-bottom: none; }\n        .article a { text-decoration: none; color: #333; font-weight: bold; font-size: 16px; }\n        .article a:hover { color: #007bff; }\n        .article p { margin: 5px 0; color: #666; font-size: 14px; }\n        .loader { text-align: center; font-size: 18px; color: #666; }\n        .refresh-btn { display: block; width: 200px; margin: 20px auto; padding: 10px; background: #007bff; color: white; text-align: center; cursor: pointer; border-radius: 5px; }\n        .refresh-btn:hover { background: #0056b3; }\n        .error { text-align: center; color: red; font-weight: bold; }\n    &lt;\/style>\n&lt;\/head>\n&lt;body>\n    &lt;h1>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0RSS\u30c8\u30ec\u30f3\u30c9&lt;\/h1>\n    &lt;div id=\"rss-feed\" class=\"loader\">\u8aad\u307f\u8fbc\u307f\u4e2d...&lt;\/div>\n    &lt;div class=\"refresh-btn\" onclick=\"loadRSS()\">\u6700\u65b0\u306e\u60c5\u5831\u3092\u53d6\u5f97&lt;\/div>\n    &lt;div id=\"error-message\" class=\"error\">&lt;\/div>\n    \n    &lt;script>\n        async function fetchRSS(url) {\n            try {\n                const response = await fetch(`https:\/\/api.rss2json.com\/v1\/api.json?rss_url=${encodeURIComponent(url)}`);\n                if (!response.ok) throw new Error(\"RSS\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\");\n                const data = await response.json();\n                return data.items || &#91;];\n            } catch (error) {\n                console.error(\"RSS\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", error);\n                return &#91;];\n            }\n        }\n\n        async function loadRSS() {\n            const feedElement = document.getElementById(\"rss-feed\");\n            const errorElement = document.getElementById(\"error-message\");\n            feedElement.innerHTML = \"\u8aad\u307f\u8fbc\u307f\u4e2d...\";\n            errorElement.innerHTML = \"\";\n            \n            const rssUrls = &#91;\n                \"https:\/\/news.google.com\/rss?hl=ja&amp;gl=JP&amp;ceid=JP:ja\",\n                \"https:\/\/rss.itmedia.co.jp\/rss\/2.0\/news_bursts.xml\",\n                \"https:\/\/www3.nhk.or.jp\/rss\/news\/cat0.xml\"\n            ];\n            \n            let allArticles = &#91;];\n            for (const url of rssUrls) {\n                const articles = await fetchRSS(url);\n                allArticles = allArticles.concat(articles);\n            }\n            \n            if (allArticles.length === 0) {\n                feedElement.innerHTML = \"\";\n                errorElement.innerHTML = \"\u8a18\u4e8b\u304c\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\";\n                return;\n            }\n            \n            allArticles.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));\n            feedElement.innerHTML = \"\";\n            \n            allArticles.forEach(article => {\n                const articleElement = document.createElement(\"div\");\n                articleElement.classList.add(\"article\");\n                articleElement.innerHTML = `\n                    &lt;a href=\"${article.link}\" target=\"_blank\">${article.title}&lt;\/a>\n                    &lt;p>\u516c\u958b\u65e5\u6642: ${new Date(article.pubDate).toLocaleString()}&lt;\/p>\n                `;\n                feedElement.appendChild(articleElement);\n            });\n        }\n        \n        document.addEventListener(\"DOMContentLoaded\", loadRSS);\n        setInterval(loadRSS, 300000); \/\/ 5\u5206\u3054\u3068\u306b\u81ea\u52d5\u66f4\u65b0\n    &lt;\/script>\n&lt;\/body>\n&lt;\/html>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[80],"tags":[3],"class_list":["post-25867","post","type-post","status-publish","format-standard","hentry","category-html","tag-programming"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25867"}],"version-history":[{"count":1,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25867\/revisions"}],"predecessor-version":[{"id":25868,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25867\/revisions\/25868"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25867"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}