Skip to content

Commit 4adc07a

Browse files
committed
update rss and datetime param
1 parent aa14161 commit 4adc07a

File tree

1 file changed

+52
-34
lines changed

1 file changed

+52
-34
lines changed

main.js

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ async function RuTracker(query, categoryId, page) {
291291
'Peers': data(element).find('td.row4.leechmed.bold').text().trim(),
292292
// Заменяем все символы пробела на обычные пробелы и форматируем дату (передаем пробел вторым параметром разделителя)
293293
'Date': formatDate(
294-
data(element).find('td.row4 p').text().trim(),
294+
data(element).find('td.row4 p').text().trim().replace(/(\d{1,2}-[А-Яа-я]{3}-\d{2}).*/, '$1'),
295295
"-"
296296
)
297297
}
@@ -721,8 +721,40 @@ async function Kinozal(query, categoryId, page, year, format) {
721721
// +++ Анализ заголовка
722722
// Забираем все элементы 's'
723723
const s = data(element).find('.s')
724-
// Разбиваем дату из 3-его элемента массива 's'
725-
const date = s.eq(2).text().trim().split(" ")
724+
// Забираем дату из 3-его элемента 's'
725+
const sDate = s.eq(2).text().trim() // сейчас || сегодня в 15:17 || вчера в 23:51 || 06.10.2024 в 19:47
726+
// Разбиваем дату на массив
727+
const dateArray = sDate.split(" ")
728+
let date
729+
let time
730+
// Получаем текущую дату и время
731+
const today = new Date()
732+
let currentDay = String(today.getDate()).padStart(2, '0')
733+
let currentMonth = String(today.getMonth() + 1).padStart(2, '0') // Месяцы начинаются с 0
734+
let currentYear = today.getFullYear()
735+
// Проверяем и обновляем дату и время до формата dd.mm.yyyy и hh:mm
736+
if (dateArray.includes('сейчас')) {
737+
date = `${currentDay}.${currentMonth}.${currentYear}`
738+
time = `${today.getHours()}:${today.getMinutes()}`
739+
}
740+
// Получаем текущую дату и вытаскиваем время из массива
741+
else if (dateArray.includes('сегодня')) {
742+
date = `${currentDay}.${currentMonth}.${currentYear}`
743+
time = dateArray[2]
744+
}
745+
// Вычитаем один день
746+
else if (dateArray.includes('вчера')) {
747+
today.setDate(today.getDate() - 1)
748+
currentDay = String(today.getDate()).padStart(2, '0')
749+
currentMonth = String(today.getMonth() + 1).padStart(2, '0')
750+
currentYear = today.getFullYear()
751+
date = `${currentDay}.${currentMonth}.${currentYear}`
752+
time = dateArray[2]
753+
}
754+
else {
755+
date = dateArray[0]
756+
time = dateArray[2]
757+
}
726758
// Получем жанр по type id
727759
const categoryGetId = data(element).find("td.bt img")?.attr("onclick")?.match(/\d+/)[0]
728760
// Получаем название жанра по id через индекс массива
@@ -745,7 +777,8 @@ async function Kinozal(query, categoryId, page, year, format) {
745777
'Category': category,
746778
'Seeds': data(element).find('.sl_s').text().trim(),
747779
'Peers': data(element).find('.sl_p').text().trim(),
748-
'Date': `${date[0]} ${date[2]}`
780+
'Time': time,
781+
'Date': date
749782
}
750783
torrents.push(torrent)
751784
}
@@ -979,30 +1012,10 @@ async function KinozalRssCustom(typeData, categoryId, year, format) {
9791012
const torrents = []
9801013
if (dataKinozal.length === 50) {
9811014
dataKinozal.forEach(element => {
982-
let updateDate
983-
const date = element.Date
984-
const today = new Date()
985-
let time = date.split(' ')[1]
986-
if (date.includes('сегодня')) {
987-
// Получаем формат: 2024-10-08T04:21:27+00:00
988-
const currentDay = String(today.getDate()).padStart(2, '0')
989-
const currentMonth = String(today.getMonth() + 1).padStart(2, '0') // Месяцы начинаются с 0
990-
const currentYear = today.getFullYear()
991-
updateDate = `${currentYear}-${currentMonth}-${currentDay}T${time}+00:00`
992-
}
993-
else if (date.includes('вчера')) {
994-
// Вычитаем один день
995-
today.setDate(today.getDate() - 1);
996-
const currentDay = String(today.getDate()).padStart(2, '0')
997-
const currentMonth = String(today.getMonth() + 1).padStart(2, '0')
998-
const currentYear = today.getFullYear()
999-
updateDate = `${currentYear}-${currentMonth}-${currentDay}T${time}+00:00`
1000-
}
1001-
else {
1002-
// Парсим дату: 06.10.2024 21:46
1003-
let date2 = date.split(' ')[0].split('.')
1004-
updateDate = `${date2[2]}-${date2[1]}-${date2[0]}T${time}+00:00`
1005-
}
1015+
let dateArray = element.Date.split('.')
1016+
let time = element.Time
1017+
// Получаем формат: YYYY-MM-DDTHH:MM:SS+00:00
1018+
let updateDate = `${dateArray[2]}-${dateArray[1]}-${dateArray[0]}T${time}:00+00:00`
10061019
const torrent = {
10071020
'date': updateDate,
10081021
'title': element.Name,
@@ -1124,8 +1137,8 @@ async function RuTor(query, categoryId, page) {
11241137
const torrents = []
11251138
let html
11261139
let url
1127-
for (const url of urls) {
1128-
const urlQuery = url
1140+
for (const urlQuery of urls) {
1141+
url = urlQuery.replace(/^(https:\/\/rutor\.[a-z]{2,4}).+/, "$1") // подстановочный параметр для рабочего url
11291142
try {
11301143
const response = await axiosProxy.get(urlQuery, {
11311144
timeout: 3000,
@@ -1562,6 +1575,12 @@ async function NoNameClub(query, categoryId, page) {
15621575
const sizeIndex = count === 4 ? 1 : count === 5 ? 2 : 1
15631576
// Исключаем первый элемент байт из массива (slice(1))
15641577
const size = data(element).find(`.gensmall:eq(${sizeIndex})`).text().trim().split(' ', 3).slice(1).join(' ')
1578+
// Забираем и преобразуем timestamp
1579+
const dataArray = unixTimestamp(
1580+
data(element).find(`.gensmall:eq(${sizeIndex + 2})`).text().trim().split(' ')[0]
1581+
).split(' ')
1582+
const date = dataArray[0]
1583+
const time = dataArray[1]
15651584
const torrent = {
15661585
'Name': data(element).find('.genmed a b').text().trim(),
15671586
'Id': data(element).find('.genmed a').attr('href').replace(/.+t=/, ''),
@@ -1573,9 +1592,8 @@ async function NoNameClub(query, categoryId, page) {
15731592
'Seeds': data(element).find('.seedmed').text().trim(),
15741593
'Peers': data(element).find('.leechmed').text().trim(),
15751594
// Забираем и преобразуем timestamp
1576-
'Date': unixTimestamp(
1577-
data(element).find(`.gensmall:eq(${sizeIndex + 2})`).text().trim().split(' ')[0]
1578-
)
1595+
'Time': time,
1596+
'Date': date
15791597
}
15801598
torrents.push(torrent)
15811599
}
@@ -2121,7 +2139,7 @@ const options = {
21212139
openapi: '3.0.0',
21222140
info: {
21232141
title: 'TorAPI',
2124-
version: '0.5.1',
2142+
version: '0.5.2',
21252143
description: 'Unofficial API (backend) for RuTracker, Kinozal, RuTor and NoNameClub',
21262144
contact: {
21272145
name: "© Lifailon (Alex Kup)",

0 commit comments

Comments
 (0)