7 941

Re: Тема для розмов

дізнався про cheerio, тепер хочу побудувати json файл з інфою про всі повідомлення на цьому сайтику.
А потім подивимось, як моя відсутність впливає на активність форуму  ;D
осьо назви категорій можу вже отримати

Прихований текст

https://cdn.discordapp.com/attachments/333936584481177600/476796024367874056/unknown.png

7 942

Re: Тема для розмов

як боротися з таймаутом?

7 943

Re: Тема для розмов

FakiNyan написав:

дізнався про cheerio, тепер хочу побудувати json файл з інфою про всі повідомлення на цьому сайтику.
А потім подивимось, як моя відсутність впливає на активність форуму  ;D
осьо назви категорій можу вже отримати

Прихований текст

https://cdn.discordapp.com/attachments/333936584481177600/476796024367874056/unknown.png

А я пам'ятаю, як ви починали знайомитись з пайтоном і теж писали тут що перше, що написали на пітоні - парсер назв категорій на replace. Я тоді ще офігів, ну як так, я теж вже ось 2 місяці Лутца читаю і нічого такого в пайтоні не бачив, і вирішив що вивчу пайтон і теж так зможу  :(

7 944

Re: Тема для розмов

а я такого не пам'ятаю щось
пам'ятаю тільки, як шум Перліна малював на Пайтоні

7 945

Re: Тема для розмов

ну ось напишете цей парсер то може і побачите в усіх повідомленнях своє

Подякували: 221VOLT1

7 946

Re: Тема для розмов

думаю, якого дідька вилазить помилка, і вона null?
а от чому

body: '<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body bgcolor="white">\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>nginx/1.6.2</center>\r\n</body>\r\n</html>\r\n' }

7 947

Re: Тема для розмов

хм, отако зробив, наче норм

const request = require('request');
const cheerio = require('cheerio');
const fs = require('fs');

const writeStream = fs.createWriteStream('./result.json');

let maxIdent = 0;

function parsePage(url, selector, identation = 1, prefix = '') {
  if (identation > maxIdent) maxIdent = identation;
  request.get(url, { tymeout: 15000 }, (error, response, body) => {
    if (!error && response.statusCode === 200) {
      const $ = cheerio.load(body);
      $(selector).each((index, elem) => {
        const link = $(elem).prop('href');
        let resultString = '';
        for (let i = 0; i < identation; i++) {
          resultString += ' ';
        }
        writeStream.write(
          `${resultString}${prefix}${prefix ? '.' : ''}${index}. ${$(
            elem
          ).text()}\n`,
          error => console.error(`write stream error`, error)
        );
        if (link) {
          parsePage(link, '.item-subject .hn a', identation + 1, index + 1);
        } else {
          console.error(`link is `, link);
        }
      });
    } else {
      if (error && error.code === 'ETIMEDOUT') {
        console.error(`error`, error);
        setTimeout(
          () => parsePage(url, selector, (identation = 1), prefix),
          5000
        );
      }
    }
  });
}

parsePage('http://replace.org.ua/', '.item-subject .hn a', 1);

це воно витягує назви категорій і підкатегорій, рекурсивно.
Тільки от проблема в тому, що це все робиться асинхронно, і тому в файл записується як-небудь

Подякували: P.Y.1

7 948

Re: Тема для розмов

https://www.youtube.com/watch?v=WaRGjKwPgic

7 949

Re: Тема для розмов

Так робіть не асинхронно.

7 950

Re: Тема для розмов

та це якось по-старомодньому

7 951

Re: Тема для розмов

А яка тут асинхронність може бути? У вас же один запит йде до html сторінки. А далі один воркер працює) Ну я принаймі так робив

Подякували: P.Y.1

7 952

Re: Тема для розмов

асинхронність, то коли відразу декілька запитів підряд відправляються, і ніхто не чекає, доки прийде відповідь від серверу на перший запит, аби розпочати наступний запит

7 953

Re: Тема для розмов

Колись говорив, що займуся розробкою українського донат сервісу.
Ось, що зараз маю.

https://cdn.discordapp.com/attachments/303293917820878849/475202098577801217/Peek_2018-08-04_08-58.gif

Але біда, немає досвіду фронтенд розробки. Мо хто має бажання допомогти з двома простими макетами:

  • макет сторінки подяк, котра на анімації

  • макет сповіщення про дяку

Подякували: 221VOLT1

7 954

Re: Тема для розмов

То вам дизайнер треба, чи верстальщик?

7 955

Re: Тема для розмов

Дизайнерами будуть самі користувачі, зара тре продумати ці два макети, котрими користувачі будуть користуватися до певного часу. Гадаю пізніше кожен зможе робити власні макети.
Як видно на картинці нижче, у людей буде змога налаштувати макет. Ото тре всі ці штуки продумати зара.
Й людина котра фронтом трохи займалася, краще побачить де і як вставити {{ bacgroundColor }}, {{ headerSize }}
і т.д. і як ліпше зверстати макет.

Макет сповіщень
<section>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <style>
        startMusic, endMusic, ambientMusic, voiceMusic {
            display:none;
        }
    </style>

    <audio id="startMusic" src="{{ startMusic }}"></audio>
    <audio id="endMusic" src="{{ endMusic }}"></audio>
    <audio id="ambientMusic" src="{{ ambientMusic }}"></audio>
    <audio id="voiceMusic" src="{{ voiceMusic }}"></audio>

    <div class="container-fluid">
        <div class="row text-center">
            <div class="col-md-4 col-md-offset-4"><img src="{{ mainImage }}"></div>
        </div>
        <div class="row text-center">
            <div class="col-md-4 col-md-offset-4"><p>{{ name }} - {{ amount }} грн</p></div>
        <div class="row text-center">
            <div class="col-md-4 col-md-offset-4"><p>{{ message }}</p></div>
        </div>
    </div>
</section>

http://replace.org.ua/extensions/om_images/img/5b6ef00b8f255/localhost_8083_control_widget_layout_update_id_2.jpg

Подякували: leofun01, ostap34PHP, 221VOLT3

7 956

Re: Тема для розмов

Ну майже перше сповіщення через сокети.

https://cdn.discordapp.com/attachments/303293917820878849/477805718054109195/notify.gif

Подякували: ostap34PHP, 221VOLT2

7 957

Re: Тема для розмов

тобто, все таки вам потрібен ui/ux фахівець?

7 958

Re: Тема для розмов

А що за фреймвокр. Бо такий же дизайн у phpci.

7 959

Re: Тема для розмов

То adminlte

Подякували: 221VOLT1

7 960

Re: Тема для розмов

https://www.youtube.com/watch?v=dZVRuC4dpe8