V次元 发表于 2024-10-20 11:14:04

致谢名单

<h2><span style="color: #66ccff;">在此万分感谢对本站做出贡献的锦依卫们!❤ (ɔ&circ;з(&circ;⌣&circ;c) 是你们使这个后花园越来越好,最终变成大家想要的样子哦~</span></h2>
<h2><span style="font-size: x-large;">注入共鸣能量的锦依卫</span><span style="color: #000000; font-size: 12pt;">(仅显示&gt;10共鸣能量)</span></h2>
<h4><span style="color: #66ccff; font-size: 12pt;"><a style="color: #66ccff;" href="https://i.lty.fan/plugin.php?id=one_credits" target="_blank" rel="noopener">&gt;&gt;点我注入共鸣能量</a></span></h4>
<div class="hot-top layui-clear">
    <div class="right">
      <div class="right-overflow" id="yhturns">
            <div class="right-main">
                <div class="sponsor-list-wrapper">
                  <div class="sponsor-list" id="userTableBody">

                  </div>
                </div>
            </div>
      </div>
    </div>
</div>

<script>
function calculateNameBytesLength(name) {
    let length = 0;
    for (let i = 0; i < name.length; i++) {
      const charCode = name.charCodeAt(i);
      if (charCode >= 0 && charCode <= 128) {
            length += 1;
      } else {
            length += 2;
      }
    }
    return length;
}

document.addEventListener('DOMContentLoaded', function() {
    fetch('https://i.lty.fan/plugin.php?id=tybbs_member_count_api:get_data')
      .then(response => response.json())
      .then(data => {
            if (data.status === 'success' && Array.isArray(data.data)) {
                const users = data.data
                  .filter(user => user.extcredits3 >= 10)
                  .sort((a, b) => b.extcredits3 - a.extcredits3);

                const sponsorList = document.getElementById('userTableBody');

                users.forEach(user => {
                  const nickname = user.username || '无昵称';
                  const avatarUrl = `http://i.lty.fan/uc_server/avatar.php?uid=${user.uid}&size=big`;
                  const sponsorAmount = `¥${user.extcredits3}`;
                  const profileLink = `https://i.lty.fan/home.php?mod=space&uid=${user.uid}&do=profile`;

                  const sponsorItem = document.createElement('div');
                  sponsorItem.className = 'sponsor-item';

                  const nameBytesLength = calculateNameBytesLength(nickname);

         
                  const displayName = nameBytesLength > 8
                        ? `<span class="scroll-text">${nickname}</span>`
                        : nickname;

                  sponsorItem.innerHTML =
                        `<a href="${profileLink}" target="_blank">
                            <span class="avatar-img" title="赞助用户">
                              <img decoding="async" alt="${nickname}的头像" src="${avatarUrl}" class="avatar avatar-id-${user.uid}" title="${nickname}">
                            </span>
                            <p class="user-name" title="${nickname}">
                              ${displayName}
                            </p>
                            <p class="sponsor-amount" title="赞助积分">${sponsorAmount}</p>
                        </a>`;

                  sponsorList.appendChild(sponsorItem);
                });
            } else {
                alert('无法获取用户数据,或数据格式不正确');
                console.error('Unexpected data format:', data);
            }
      })
      .catch(error => console.error('Error fetching data:', error));
});

</script>

<style>
    .sponsor-list {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-start;
      gap: 10px;
    }
    .sponsor-item {
      width: 60px;
      text-align: center;
      border: 1px solid #ddd;
      padding: 5px;
      border-radius: 5px;
      box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
    }
    .sponsor-item a {
      text-decoration: none;
      color: inherit;
    }
    .avatar-img img {
      width: 50px;
      height: 50px;
      border-radius: 50%;
    }
    .user-name {
      margin-top: 5px;
      font-size: 12px;
      font-weight: bold;
      white-space: nowrap;
      overflow: hidden;
      width: 100%;
    }
    .scroll-text {
      display: inline-block;
      animation: scroll 5s linear infinite;
      white-space: nowrap;
    }
    .sponsor-amount {
      margin-top: 3px;
      font-size: 15px;
      color: #e00;
    }

    @keyframes scroll {
      0% { transform: translateX(100%); }
      100% { transform: translateX(-100%); }
    }
</style>



<h2><span style="font-size: x-large;">正在注入V能量的锦依卫</span></h2>
<p><span style="color: #66ccff; font-size: 12pt;"><a style="color: #66ccff;" href="https://i.lty.fan/plugin.php?id=one_group" target="_blank" rel="noopener">>>点我注入V能量</a></span></p>

<div class="injection-user-list">
    <div class="injection-right">
      <div class="injection-overflow" id="injection-yhturns">
            <div class="injection-main">
                <div class="injection-list-wrapper">
                  <div class="injection-list" id="injectionUserTableBody">

                  </div>
                </div>
            </div>
      </div>
    </div>
</div>

<script>

const apiUrl = 'https://i.lty.fan/plugin.php?id=tybbs_function_list_users:api&action=get_injection_users';

function getCurrentTimestamp() {
    return Math.floor(new Date().getTime() / 1000);
}

function calculateRemainingDays(expiryTimestamp) {
    const currentTimestamp = getCurrentTimestamp();
    const remainingSeconds = expiryTimestamp - currentTimestamp;
    const remainingDays = Math.floor(remainingSeconds / (60 * 60 * 24));
    return remainingDays > 0 ? remainingDays : 0;
}

function calculateNameBytesLength(name) {
    let length = 0;
    for (let i = 0; i < name.length; i++) {
      const charCode = name.charCodeAt(i);
      if (charCode >= 0 && charCode <= 128) {
            length += 1;
      } else {
            length += 2;
      }
    }
    return length;
}

function generateUserItem(user) {
    const avatarUrl = `http://i.lty.fan/uc_server/avatar.php?uid=${user.uid}&size=big`;

    // 计算名字的字节长度
    const nameBytesLength = calculateNameBytesLength(user.username);

    // 根据 groupid 生成角标图片 URL
    let groupIconUrl = '';
    if (user.groupid == 23) {
      groupIconUrl = 'https://i.lty.fan/data/attachment/common/37/common_23_usergroup_icon.png'; // 激发态
    } else if (user.groupid == 22) {
      groupIconUrl = 'https://i.lty.fan/data/attachment/common/b6/common_22_usergroup_icon.png'; // 基态
    }

    // 计算剩余天数,不需要除以1000
    const remainingDays = calculateRemainingDays(user.groupexpiry);

    // 判断用户名是否需要滚动显示
    const scrollClass = nameBytesLength > 8 ? 'injection-scroll-text' : '';

    // 生成用户的 HTML 结构
    return `
      <div class="injection-item">
            <a href="https://i.lty.fan/home.php?mod=space&uid=${user.uid}&do=profile" target="_blank">
                <div class="injection-avatar-container">
                  <img decoding="async" alt="${user.username}的头像" src="${avatarUrl}" class="injection-avatar-id-${user.uid}" title="${user.username}">
                  ${groupIconUrl ? `<img src="${groupIconUrl}" alt="用户组角标" class="injection-group-icon">` : ''}
                </div>
                <p class="injection-user-name" title="${user.username}">
                  <span class="${scrollClass}">${user.username}</span>
                </p>
            </a>
      </div>`;
}


fetch(apiUrl)
    .then(response => response.json())
    .then(data => {
      if (data.status === 'success') {
            let users = data.data;

            users.sort((a, b) => {
      
                if (a.groupid !== b.groupid) {
                  return b.groupid - a.groupid;
                }

                const remainingDaysA = calculateRemainingDays(new Date(a.groupexpiry).getTime() / 1000);
                const remainingDaysB = calculateRemainingDays(new Date(b.groupexpiry).getTime() / 1000);
                return remainingDaysB - remainingDaysA;
            });

            const userTableBody = document.getElementById('injectionUserTableBody');

            users.forEach(user => {
                const userItemHTML = generateUserItem(user);
                userTableBody.innerHTML += userItemHTML;
            });
      }
    })
    .catch(error => {
      console.error('获取用户数据时出错:', error);
    });


</script>


<style>
    .injection-list {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-start;
      gap: 10px;
    }
    .injection-item {
      width: 60px;
      text-align: center;
      border: 1px solid #ddd;
      padding: 5px;
      border-radius: 5px;
      box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
    }
    .injection-item a {
      text-decoration: none;
      color: inherit;
    }
    .injection-avatar-container {
      position: relative;
      display: inline-block;
    }
    .injection-avatar-container img {
      width: 50px;
      height: 50px;
      border-radius: 50%;
    }

    .injection-group-icon {
      position: absolute;
      bottom: 0;
      right: 0;
      width: 25px !important;
      height: 25px !important;
      border-radius: 50%;
    }

    .injection-user-name {
      margin-top: 5px;
      font-size: 12px;
      font-weight: bold;
      white-space: nowrap;
      overflow: hidden;
      width: 100%;
    }

    .injection-scroll-text {
      display: inline-block;
      animation: injection-scroll 5s linear infinite;
      white-space: nowrap;
    }

    @keyframes injection-scroll {
      0% { transform: translateX(100%); }
      100% { transform: translateX(-100%); }
    }
</style>



<h2><font size="5">对本站有贡献的锦依卫</font></h2>
<h3><font size="3">本站logo设计出谋划策</font></h3>


<div id="userList">

</div>

<script>

const specifiedUIDsResonance = ;

document.addEventListener('DOMContentLoaded', function() {

    const apiUrlResonance = `https://i.lty.fan/plugin.php?id=tybbs_show_user_list_by_uid:api&action=get_user_data_by_uids&uids=${specifiedUIDsResonance.join(',')}`;


    fetch(apiUrlResonance)
      .then(response => response.json())
      .then(data => {

            if (data.status === 'success' && Array.isArray(data.data)) {
                const users = data.data;
                const userList = document.getElementById('userList');


                const userLinks = [];


                users.forEach(user => {
                  const nickname = user.username || '无昵称';
                  const profileLink = `https://i.lty.fan/home.php?mod=space&uid=${user.uid}&do=profile`;

      
                  const userLink = document.createElement('a');
                  userLink.href = profileLink;
                  userLink.target = '_blank';
                  userLink.textContent = nickname;
                  userLink.style.color = 'grey';


                  userLinks.push(userLink.outerHTML);
                });

   
                userList.innerHTML = userLinks.join('、');
            } else {

                alert('无法获取用户数据,或数据格式不正确');
                console.error('Unexpected data format:', data);
            }
      })
      .catch(error => console.error('Error fetching data:', error));
});
</script>
页: [1]
查看完整版本: 致谢名单