PageSourceSearch

https://www.saison-technology.com/searchIR.js

js saison-technology.com collected 2026-09-25 14:59:49 UTC 4,664 bytes, 181 lines download raw bytes

1var eirData = null;
2var mtData = null;
3
4
5function renderNews(merged) {
6
7    var top5 = merged.slice(0, 5);
8    var container = document.getElementById("irList");
9    if (!container) {
10      return; 
11    }
12
13    var html = top5.map(function(item) {
14    var targetAttr = item.isExternal ? ' target="_blank"' : '';
15
16    return `
17      <li>
18        <a href="${item.link}" class="bl-newsCard"${targetAttr}>
19          <time class="el-time" datetime="${item.date}">
20            ${item.viewdate}
21          </time>
22          <div class="el-tags">
23            <span class="el-tag">IR</span>
24          </div>
25          <h3 class="bl-newsCard-ttl">
26            <span class="ut-hover-ul">${item.title}</span>
27          </h3>
28          <span class="ut-ico-arrow-r"></span>
29        </a>
30      </li>
31    `;
32  }).join("");
33
34  container.innerHTML = html;
35}
36
37function tryMerge() {
38  if (eirData && mtData) {
39    var result = mergeAndSort(eirData, mtData);
40    renderNews(result);
41  }
42}
43
44function mergeAndSort(eirList, mtJson) {
45
46  // EIR整形
47  var eirFormatted = eirList.map(function(item) {
48
49    var d = new Date(item.date);
50    var viewdate =
51      d.getFullYear() + '.' +
52      ('0' + (d.getMonth() + 1)).slice(-2) + '.' +
53      ('0' + d.getDate()).slice(-2);
54
55    var category = '';
56    if (_e.formatGroupText) {
57      _e.formatGroupText.value = { newsType: item.news_type };
58      category = _e.formatGroupText.newsType();
59    }
60    
61    let viewTitle = item.title;
62    if (item.type === 'pdf') {
63      viewTitle += `(PDF:${item.file_size} KB)`;
64    }
65
66    return {
67      title: viewTitle,
68      date: d.getTime(),
69      viewdate: viewdate,
70      link: item.link,
71      category: category,
72      isExternal: true,
73    };
74  });
75
76  // MT整形
77  var mtFormatted = mtJson.items
78
79    // top_check==true,entry_typ!=アーカイブしないページ のみ
80    .filter(function(item) {
81      if (!Array.isArray(item.customFields)) return false;
82
83      var topField = item.customFields.find(function(field) {
84        return field.basename === "top_check";
85      });
86      
87      var isTop = topField && (topField.value === true || topField.value === "1");
88      
89      var entryTypeField = item.customFields.find(function(field) {
90        return field.basename === "entry_type";
91      });
92      
93      var isNotArchive = !entryTypeField || entryTypeField.value !== "アーカイブしないページ";
94
95      return isTop && isNotArchive;
96    })
97
98    .map(function(item) {
99
100      var d = new Date(item.date);
101      var viewdate =
102        d.getFullYear() + '.' +
103        ('0' + (d.getMonth() + 1)).slice(-2) + '.' +
104        ('0' + d.getDate()).slice(-2);
105
106      var category = '';
107      if (item.categories && item.categories.length > 0) {
108        category = item.categories[item.categories.length - 1].label;
109      }
110
111      var isExternal = false;
112      var link = item.permalink;
113
114      if (Array.isArray(item.customFields)) {
115        var urlField = item.customFields.find(function(field) {
116          return field.basename === "url";
117        });
118
119        if (urlField && urlField.value) {
120          link = urlField.value;
121          isExternal = true;
122        }
123      }
124
125      return {
126        title: item.title,
127        date: d.getTime(),
128        viewdate: viewdate,
129        link: link,
130        category: category,
131        isExternal: isExternal,
132      };
133    });
134
135    var merged = eirFormatted.concat(mtFormatted);
136    merged.sort(function(a, b) {
137      return b.date - a.date;
138    });
139    return merged;
140  }
141
142// EIRデータ取得
143scriptLoader.setSrc(eirPassCore + "eir_common.js");
144scriptLoader.load(function() {
145
146    var wait = setInterval(function(){
147        if (window._e && typeof _e.eirMain === "function") {
148
149            var oldMain = _e.eirMain;
150
151            _e.eirMain = function(){
152
153                if (!_e.data || !_e.data.item) return;
154
155                eirData = _e.data.item.slice(0, 5);
156                tryMerge();
157
158                if (oldMain) oldMain.apply(this, arguments);
159            };
160
161            clearInterval(wait);
162        }
163    }, 50);
164
165    setParts("file_top_006");
166
167}, showMaintenanceMessage);
168
169// MTデータ取得
170//fetch('/.data-api/v4/sites/2256066/entries?limit=10&offset=0&sortBy=authored_on')
171fetch('/.data-api/v4/sites/97289/categories/142684/entries?limit=10&offset=0&sortBy=authored_on')
172.then(function(res) {
173  return res.json();
174})
175.then(function(json) {
176  mtData = json;
177  tryMerge();
178})
179.catch(function(error) {
180  console.error('エラー:', error);
181});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.