{"id":330,"date":"2024-08-23T14:42:21","date_gmt":"2024-08-23T06:42:21","guid":{"rendered":"https:\/\/blog.guguan.us.kg\/?p=330"},"modified":"2026-06-15T05:57:58","modified_gmt":"2026-06-14T21:57:58","slug":"cn_dcms-social-%e5%89%af%e7%ab%99","status":"publish","type":"post","link":"https:\/\/blog.guguan.us.kg\/?p=330","title":{"rendered":"CN_DCMS-Social \u526f\u7ad9"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u7f51\u7ad9\u94fe\u63a5\uff1a<a href=\"https:\/\/foo.gv.uy\/dcms\/\">https:\/\/foo.gv.uy\/dcms\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7528\u514d\u8d39\u57df\u540d\u548c\u514d\u8d39\u4e3b\u673a\u5f00\u4e86\u4e00\u4e2a <a href=\"https:\/\/dcms.net.cn\">CN_DCMS-Social<\/a> \u7684\u526f\u7ad9\uff0c\u57fa\u4e8e zzyh \u7684 <a href=\"https:\/\/github.com\/zzyh1145\/CN_DCMS-Social\/\">CN_DCMS-Social \u9879\u76ee<\/a>\uff0c\u7528\u4e8e\u6d4b\u8bd5\u548c\u5c55\u793a\u6b64\u9879\u76ee\u7684\u6700\u65b0\u7248\u6210\u679c\u3002\u6bcf\u96941\u5c0f\u65f6\u540c\u6b65\u4e00\u6b21 GitHub \u4ed3\u5e93\u3002\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6ce8\u610f\uff1a\u5982\u679c\u9700\u8981\u5206\u4eab\u6587\u4ef6\u8bf7\u4e0d\u8981\u76f4\u63a5\u4e0a\u4f20\u5230 CN_DCMS-Social \u526f\u7ad9\uff0c\u8bf7\u4e0a\u4f20\u5230<a href=\"https:\/\/guguan.free.nf\">\u5916\u94fe\u7f51\u76d8<\/a><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/api.guguan.dpdns.org\/dcms_screenshot.php\" alt=\"\u7f51\u7ad9\u622a\u56fe\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><style>\n\t.container {\n\t\tpadding: 20px;\n\t}\n\t.card {\n\t\tbackground-color: white;\n\t\tborder-radius: 8px;\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n\t\tmargin-bottom: 20px;\n\t\tpadding: 15px;\n\t\toverflow: hidden;\n\t\ttransition: background-color 0.3s, box-shadow 0.3s;\n\t}\n\t.card-header {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 10px;\n\t}\n\t.card-header div {\n\t\tmargin-bottom: 5px;\n\t}\n\t.card-content {\n\t\tfont-size: 14px;\n\t}\n\t.card-content p {\n\t\tmargin: 5px 0;\n\t}\n\t.card-content .field {\n\t\tfont-weight: bold;\n\t}\n\t.error-message {\n\t\tcolor: red;\n\t}\n\t\/* \u6697\u8272\u6a21\u5f0f\u6837\u5f0f *\/\n\t@media (prefers-color-scheme: dark) {\n\t\t.card {\n\t\t\tbackground-color: #2e2e2e;\n\t\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);\n\t\t}\n\t}\n\t@media (max-width: 600px) {\n\t\t.card-content {\n\t\t\tfont-size: 12px;\n\t\t}\n\t}\n<\/style>\n<h4>\u6587\u4ef6\u540c\u6b65\u4fe1\u606f<\/h4>\n<div class=\"container\" id=\"syncContainer\"><\/div>\n<script>\n\tlet sortOrder = 'desc'; \/\/ \u521d\u59cb\u5316\u4e3a\u964d\u5e8f\n\tlet syncData = [];\n\t\/\/ \u8c03\u7528API\u83b7\u53d6\u6570\u636e\n\tasync function fetchData() {\n\t\ttry {\n\t\t\tconst response = await fetch('https:\/\/api.guguan.dpdns.org\/public\/files.php?api&item=dcms_sync_log.json&encode=base64');\n\t\t\t\/\/ \u5982\u679c\u670d\u52a1\u5668\u8fd4\u56de\u7684\u72b6\u6001\u7801\u4e0d\u662f 200\uff0c\u5219\u629b\u51fa\u9519\u8bef\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(`API \u8bf7\u6c42\u5931\u8d25\uff0c\u72b6\u6001\u7801: ${response.status}`);\n\t\t\t}\n\t\t\tconst jsonResponse = await response.json();\n\t\t\tif (jsonResponse.status !== 'success' || jsonResponse.type !== 'file') {\n\t\t\t\tthrow new Error('\u54cd\u5e94\u5931\u8d25\u6216\u76ee\u6807\u7c7b\u578b\u4e0d\u662f\u6587\u4ef6');\n\t\t\t}\n\t\t\tconst decodedContent = atob(jsonResponse.content);\n\t\t\tsyncData = JSON.parse(decodedContent);\n\t\t\trenderCards(syncData);\n\t\t} catch (error) {\n\t\t\tconsole.error('\u83b7\u53d6\u6570\u636e\u65f6\u51fa\u9519:', error);\n\t\t\tdisplayError(`\u65e0\u6cd5\u52a0\u8f7d\u6587\u4ef6\u540c\u6b65\u4fe1\u606f: ${error.message}`);\n\t\t}\n\t}\n\t\/\/ \u6e32\u67d3\u5361\u7247\n\tfunction renderCards(data) {\n\t\tconst container = document.getElementById('syncContainer');\n\t\tcontainer.innerHTML = '';\n\t\tconst sortedData = data.sort((a, b) => {\n\t\t\tconst timeA = a.sync_time ? new Date(a.sync_time).getTime() : -Infinity;\n\t\t\tconst timeB = b.sync_time ? new Date(b.sync_time).getTime() : -Infinity;\n\t\t\treturn sortOrder === 'desc' ? timeB - timeA : timeA - timeB;\n\t\t});\n\t\tsortedData.forEach(item => {\n\t\t\tconst card = document.createElement('div');\n\t\t\tcard.className = 'card';\n\t\t\tcard.innerHTML = `\n\t\t\t\t<div class=\"card-header\">\n\t\t\t\t\t<div>\u540c\u6b65\u65f6\u95f4: ${item.sync_time || 'N\/A'}<\/div>\n\t\t\t\t\t<div>\u5f53\u524d\u63d0\u4ea4 ID: ${item.commit_id || 'N\/A'}<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"card-content\">\n\t\t\t\t\t<p><span class=\"field\">\u66f4\u65b0\u7684\u6587\u4ef6:<\/span> ${item.updated_files && item.updated_files.length > 0 ? item.updated_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u66f4\u65b0\u51fa\u9519\u7684\u6587\u4ef6:<\/span> ${item.error_updated_files && item.error_updated_files.length > 0 ? item.error_updated_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u91cd\u547d\u540d\u7684\u6587\u4ef6:<\/span> ${item.renamed_files && item.renamed_files.length > 0 ? item.renamed_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u91cd\u547d\u540d\u51fa\u9519\u7684\u6587\u4ef6:<\/span> ${item.error_renamed_files && item.error_renamed_files.length > 0 ? item.error_renamed_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u5220\u9664\u7684\u6587\u4ef6:<\/span> ${item.deleted_files && item.deleted_files.length > 0 ? item.deleted_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u5220\u9664\u51fa\u9519\u7684\u6587\u4ef6:<\/span> ${item.error_deleted_files && item.error_deleted_files.length > 0 ? item.error_deleted_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u5220\u9664\u7684\u76ee\u5f55:<\/span> ${item.deleted_directories && item.deleted_directories.length > 0 ? item.deleted_directories.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u5220\u9664\u51fa\u9519\u7684\u76ee\u5f55:<\/span> ${item.error_deleted_directories && item.error_deleted_directories.length > 0 ? item.error_deleted_directories.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t\t<p><span class=\"field\">\u51fa\u9519\u7684\u6587\u4ef6:<\/span> ${item.error_files && item.error_files.length > 0 ? item.error_files.join(', ') : '\u65e0'}<\/p>\n\t\t\t\t<\/div>\n\t\t\t`;\n\t\t\tcontainer.appendChild(card);\n\t\t});\n\t}\n\t\/\/ \u5728\u9875\u9762\u4e2d\u663e\u793a\u9519\u8bef\u4fe1\u606f\n\tfunction displayError(message) {\n\t\tconst container = document.getElementById('syncContainer');\n\t\tcontainer.innerHTML = `<div class=\"error-message\">${message}<\/div>`;\n\t}\n\t\/\/ \u9875\u9762\u52a0\u8f7d\u65f6\u83b7\u53d6\u6570\u636e\n\tfetchData();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7f51\u7ad9\u94fe\u63a5\uff1ahttps:\/\/foo.gv.uy\/dcms\/ \u7528\u514d\u8d39\u57df\u540d\u548c\u514d\u8d39\u4e3b\u673a\u5f00\u4e86\u4e00\u4e2a CN_DCMS-Soc [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-330","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=\/wp\/v2\/posts\/330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=330"}],"version-history":[{"count":10,"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=\/wp\/v2\/posts\/330\/revisions"}],"predecessor-version":[{"id":1676,"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=\/wp\/v2\/posts\/330\/revisions\/1676"}],"wp:attachment":[{"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.guguan.us.kg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}