Проверка уникальности текста в STEEMIT на NODEJS

in Steem-BRU (BY-RU-UA)3 years ago

Безымянный.png

У меня недавно перестал работать ноутбук - как хорошо, что я выкладывал все скрипты в STEEMIT. Я еще думал иногда - зачем... но теперь понимаю, что надо выкладывать ЕЩЕ чаще, потому что некоторые версии были утеряны :(

14:00

Возможно сейчас не удастся восстановить полностью работоспособную версию, какая была. Я только сейчас понял, что ведь все скрипты потеряны на ноутбуке.

Посмотрим, что есть. Первое, что нужно сделать, это создать базу MySql, установить MySql и затем создать базу.

Ох, время осталось мало, я снова дотянул до последнего!

В посте с днем рождения есть полный скрипт проверки уникальности.

https://steemit.com/hive-171319/@alexmove/01-november-2021-today-is-my-birthday-36-years-old-segodnya-moi-den-rozhdeniya-mne-36-let

MySql как-то странно устанавливается... ладно... пока посмотрю инструкции, удастсястанавливаю NODEJS

Ох, надо заново будет доделывать некоторые вещи в скриптах, потому что они были потеряны самые последние версии. Это урон.

15:00

MySql установил. Создаю базу garden
Есть

Теперь использую первый скрпт create.js

const mysql = require("mysql2");

const connection = mysql.createConnection({
host: "localhost",
user: "root",
database: "xxxx",
password: "xxxx"
});

let mytable_p = 'p2110';
let mytable_c = 'c2110';
let mytable_day = 'a2110';

let sql = create table if not exists ${mytable_p}( id int primary key auto_increment, author varchar(255) not null, title varchar(255) not null, created varchar(255) not null, length int not null, url varchar(255) not null, comments int not null, upvotes int not null, points float not null);

let sql2 = create table if not exists ${mytable_c}( id int primary key auto_increment, author varchar(255) not null, count int not null, points float not null );

let sql3 = create table if not exists ${mytable_day}( id int primary key auto_increment, author varchar(255) not null, comments float not null, posts float not null, points float not null );
console.log(sql);

connection.query(sql, function(err, results) {
if(err) console.log(err);
else console.log("Таблица создана");
});

connection.query(sql2, function(err, results) {
if(err) console.log(err);
else console.log("Таблица создана");
});

connection.query(sql3, function(err, results) {
if(err) console.log(err);
else console.log("Таблица создана");
});

connection.end();

//create_day.js
const fs = require("fs");

let array = fs.readFileSync('spisok.txt').toString().split("\n");
let test_a = array[0].split(' ');
console.log(test_a[2]);

len1 = test_a.length;
for (x1 = 0; x1 < len1; x1++) {

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "xxxx",
  password: "xxxx"
});

        
        const sql4 = "INSERT INTO `"+mytable_day+"` (`author`, `comments`, `posts`, `points`) VALUES ('"+test_a[x1]+"', '0', '0', '0')";

            connection.query(sql4,function(err, results) {
                if(err) console.log(err);   });
                    
connection.end();

}


создаю файл spisok.txt

lensaphoto hanyphonna nasirmali malikshazib nadiaturrina nurfiana rabibulhasan71 iffatilyas kingbadshah dederanggayoni humaidi vipnata fwinanda aamerasghar1 nifrijal zaheer123 karlin vivianita sharifanamin stefant2007 meehu helios36 zoyabhatti06 zainwattoo basyir01 taillah benevolence1 masrull lachicarebelde rizvi007 ashfaq99 partner-macro syedarimsha

34 пользователя вручную добавил

15:10

Идем дальше... попробуем запустить создание таблиц.

npm i mysql2
npm i steem

конечно же.
работает!

15:20

Теперь анализ постов.

const fs = require("fs");
const steem = require('steem');
let body3R = '';

let accounts = fs.readFileSync('spisok.txt').toString().split(" ");
console.log(accounts);

let mytable = 'p1810';

accounts.forEach(function (element,i,array){
    steem.api.getDiscussionsByAuthorBeforeDate(element,null, new Date().toISOString().split('.')[0],20 , function(err, result) {
     //  console.log(result);
       
       
        var i, len = result.length;
                    for (i = 0; i < len; i++) 
                    {
                                                    
                       var raw = result[i];
                       console.log('Автор');
                       console.log(raw.author);
                       console.log('Заголовок');
                       console.log(raw.author);
                     console.log('Сообщество');

                       console.log(raw.category);
                         console.log('Длина поста');
                       console.log(raw.body_length);
                         console.log('Количество ожидаемого вознаграждения');
                       console.log(raw.pending_payout_value);
     console.log('Количество комментариев');                     
                     console.log(raw.replies.length);
                         console.log('Количество upvote');
                        let upvote = raw.active_votes.length-1;
                       console.log(raw.active_votes.length-1);
     console.log('Дата создания');                   
                       console.log(raw.created);
    let input = raw.created;
    var d = new Date(); // Today!

                        d.setDate(d.getDate() - 1); // Yesterday!
                        d = d.toJSON().split("T")[0];
            let title = raw.title;

    title = title.replace(/[^a-zа-яё0-9\s]/gi, ' ');
            
    if ((input.indexOf(d) !== -1)&& (raw.category === 'hive-171319'))

    {
    body3R =  `| `+raw.author + `| <a href="`+raw.url+`">` + title + `</a>| `+ upvote + `| ` +  `????`  + `| ` + raw.children+`| ` + raw.body_length+ ' | \n';
    console.log(body3R);
    
            const mysql = require("mysql2");
  
const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "thewordgame",
  password: "xxxxxx"
});

connection.on('error', function() {});

                    const sql = `INSERT INTO ${mytable}(author, created, length, url, comments, upvotes, points) VALUES('${raw.author}', '${raw.created}', '${raw.body_length}', '${raw.url}', '${raw.children}', '${upvote}','0')`;

                    connection.query(sql, function(err, results) {
                    if(err) console.log(err);
                    console.log(results);
                    });     

connection.end();

        console.log(raw.created);
            fs.appendFileSync("rank.txt",body3R);

    }
}



    });
    

});

Окончательная версия

create.js

const mysql = require("mysql2");

const connection = mysql.createConnection({
host: "localhost",
user: "root",
database: "garden",
password: "root"
});

let mytable_p = 'p1711';
let mytable_c = 'c1711';
let mytable_day = 'a1711';

let sql = `create table if not exists ${mytable_p}( id int primary key auto_increment, author varchar(255) not null, title varchar(255) not null, created varchar(255) not null, length int not null, url varchar(255) not null, comments int not null, upvotes int not null, points float not null)`;


connection.query(sql, function(err, results) {
if(err) console.log(err);
else console.log("Таблица создана");
});

connection.end();


}

Идем дальше
15:26, по плану уже надо выйти в 15:00

конечно же:

npm i axios
npm i form-data

Безымянный.png

Coin Marketplace

STEEM 0.16
TRX 0.12
JST 0.026
BTC 56849.09
ETH 2508.12
USDT 1.00
SBD 2.32