Rank Post + Checking for the uniqueness of the text | NodeJs for Steemit

in Steem-BRU (BY-RU-UA)2 years ago (edited)

Notebook (1).png

4 файла .cmd:

cmd /c node c:\js\bru\num.js
cmd /c node c:\js\bru\unic.js
cmd /c node c:\js\bru\spisok_bru.js
cmd /c node c:\js\bru\new-post-bru.js

Программа планировщик:

https://soft.softodrom.ru/%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C/19454
Запуск каждый 1 час файлов которые выше.

spisok_bru.js

Этот файл собирает все записи из сообщества и формирует список авторов (дополняет его, поэтому надо его периодически запускать, ежедевно/ежечастно). Он работает с таблицей "spisok" в базе данных. Создается она отдельно. Файл create.js прикладывается чуть ниже.

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

//https://steemit.com/hive-171319/@alexmove/the-word-game-post-2

    var query = { limit : 100, tag : "hive-171319" };

//accounts.forEach(function (element,i,array){
    
//steem.api.getDiscussionsByTrending(query, function(err, result) {
steem.api.getDiscussionsByCreated(query, function(err, result) {

      console.log(result.length);
       
       if (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(raw.permlink);
                   //      console.log('Длина поста');
                   //    console.log(raw.body_length);
                     //    console.log('Количество ожидаемого вознаграждения');
                       console.log(raw.category);
     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()); // 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'))
  // if (input.indexOf(d) !== -1)

        let spisok = raw.author + " ";
        const fs = require("fs");            
        fs.appendFileSync("spisok06.txt",spisok);
        
  const mysql = require("mysql2");
  

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

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

        const sql = `INSERT INTO spisok(author) VALUES('${raw.author}')`;
         
    
         console.log(sql);

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

}


}
        });
//});



create.js

Создает таблицу "spisok.js"

const mysql = require("mysql2");

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

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

let sql = `create table if not exists spisok( id int primary key auto_increment, author varchar(255) UNIQUE KEY)`;


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

connection.end();

new-post-bru.js

По списку из таблицы "spisok.js" перебирает всех авторов, проверяет посты, и если дата совпадает, то добавляет в таблицу типа p20211207

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


                        var d = new Date(); // Today!
                        d.setDate(d.getDate()); // Yesterday!
                        d = d.toJSON().split("T")[0];
                        d = d.replace(/-/gi, '');
                    console.log(d);   
    
                            
                            
//let mytable = 'poststest';
let mytable = 'p'+d;
let mytable_p = mytable;

   const mysql = require("mysql2");

  const sql = `SELECT * FROM spisok`;
    //const sql = `SELECT * FROM p0111 ORDER BY length DESC`;
    //     console.log(sql);   

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


  connection.query(sql,  function(err, results) {
        if(err) console.log(err);
             console.log(results[2]['author']);   

        users = results;
        accounts = users;
console.log(accounts);

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) UNIQUE KEY, comments int not null, upvotes int not null, points float not null, percent float not null)`;

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


//https://steemit.com/hive-171319/@alexmove/the-word-game-post-2


//accounts.forEach(function (element,i,array)
len = accounts.length;
 for (yyy = 0; yyy < len; yyy++) 

{
      console.log('yyy');
      console.log(yyy);
      
    steem.api.getDiscussionsByAuthorBeforeDate(accounts[yyy]['author'],null, new Date().toISOString().split('.')[0],3, function(err, result) {
      console.log('yyy');
      console.log(yyy);

       if (result)
       {
        var i, len = result.length;
                    for (i = 0; i < len; i++) 
                    {
                                                    
                       var raw = result[i];
                        console.log(raw.author);
                        console.log(raw.created);

                        let upvote = raw.active_votes.length-1;
                     
                            let input = raw.created;
                            var d = new Date(); // Today!

                            d.setDate(d.getDate()); // 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'))
                          // if (input.indexOf(d) !== -1)

                            {
                                    body3R =  `| `+raw.author + `| <a href="`+raw.url+`">` + title + `</a>| `+ upvote + `| ` +  `????`  + `| ` + raw.children+`| ` + raw.body_length+ ' | \n';
                                //  console.log(body3R);
                                    
                                //  console.log(body3R);


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

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

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

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


                        }
            }


    }
        });
}

    });

list.js

Выдает список из таблицы типа p20211207 сортировка по длине поста

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

let formula;


let mytable = 'p20211207';


const sql = `SELECT * FROM ${mytable} ORDER BY length DESC` ;
connection.query(sql,  function(err, results) {
    if(err) console.log(err);
    const users = results;
     for(let i=0; i < users.length; i++){
                               
                   if (users[i].count>0) {
                        formula = (users.length - i)/10;
                    //  console.log(users[i].count);

                   } else { formula = 0;
                 //  console.log('sdfsdfs');
                   }

            title = users[i].title.replace(/[^a-zа-яё0-9\s]/gi, ' ');

   //   console.log('|',i+1,'|',users[i].author,'|','<a href="'+ users[i].url+'">' + title + '</a>','|', users[i].comments,'|', users[i].length,'|',users[i].percent,'|');
   
      console.log('|',i+1,'|',users[i].author,'|','<a href="'+ users[i].url+'">' + title + '</a>','|', users[i].comments,'|', users[i].length,'|');

    }
});
 
connection.end();

unic.js

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



 const mysql = require("mysql2");

const steem = require('steem');

let wifkey = 'xxxx';
let votey = "alexmove";
    
    //for (var yyy = 0; yyy < 2; yyy++)
                    {
                        
 //connection.on('error', function() {});
 
const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "garden",
  password: "root"
});


let sql = `SELECT * FROM post_number`   ;
connection.query(sql,  function(err, results) {
    if(err) console.log(err);
    const users2 = results;
        // console.log(results);  

           
    let post_number = users2[0].number;
   // let post_number = 0;
        console.log(post_number);   
    post_number++;
    
      const sql8 = `UPDATE post_number SET number='${post_number}' LIMIT 1000`;
      
      post_number=post_number-1;
          
            //console.log(sql);
    
            connection.query(sql8,function(err, results) {
            if(err) console.log(err);
            console.log(results);
            });
                   


/*
let sql_date = `SELECT * FROM date` ;
connection.query(sql_date,  function(err, results) {
    if(err) console.log(err);
    const users2 = results;
    //          console.log(results);   

     let mytable_p = users2[0].p;
     let mytable_c = users2[0].c;
     let mytable_day = users2[0].a;

*/

//     let mytable_p = 'posts05';
  
                        var d = new Date(); // Today!
                        d.setDate(d.getDate()); // Yesterday!
                        d = d.toJSON().split("T")[0];
                        d = d.replace(/-/gi, '');
                        
  let mytable_p = 'p'+d;

     
//скрипт date
//});
//connection.end();

const axios = require('axios');
const FormData = require('form-data');
     

let users; 

    const sql = `SELECT * FROM ${mytable_p} ORDER BY length DESC`;
    //const sql = `SELECT * FROM p0111 ORDER BY length DESC`;
    //     console.log(sql);   

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

        users = results;
//              console.log('[1]');   
  
//  console.log(results[results.length-1]); 
//          console.log(results.length);   

// console.log(post_number);  
 //console.log(post_number);  
// console.log((users[post_number]));  
 //console.log(users[post_number-1]);  

   
     if (users[post_number])
       {
           
        console.log(results.length);   
    //    console.log(results.length);   
    //    console.log(results.length);   
     //   console.log(results.length);   
   //     console.log(post_number);   
   //     console.log('[2]');   
   //     console.log(results[77]);   
   ///     console.log(results[4]);   
   //     console.log(post_number);   
      //  console.log(users[post_number].author); 
   


    let data;
    async function makeGetRequest(qqq,aaa) {


            const form_data = new FormData();
         //  form_data.append('text', qqq);
            form_data.append('url', qqq);
            // form_data.append('test', '1');

            let res = await axios.post('https://content-watch.ru/public/api/?action=CHECK_URL&key=lsjhl80J7RiB4FU', form_data, 
                { headers: form_data.getHeaders() });

            data = res.data;
           // console.log(data);
            console.log(data.percent);

/*
                function highlight_words(text, hightlight)
                {
                    var words = text.split(" ");
                    for (var i = 0; i < hightlight.length; i++)
                    {
                        words[ hightlight[i][0] ] = '<strong>' + words[ hightlight[i][0] ];
                        words[ hightlight[i][1] ] = words[ hightlight[i][1] ] + '</strong>';
                    }
                    return words.join(" ");
                }
*/

          //  console.log(data.matches);
            console.log(data.matches[3]);


  let answer2 = data.percent + "% уникальности текста (uniqueness of the text) " + " <br> " + "Здравствуйте. Это полуавтоматическая проверка уникальности сервисом content-watch. Пожалуйста, сообщайте о неточностях. <b>Уникальность вашей статьи согласно сервиса content-watch.ru равна: " + data.percent + "% </b><br><br>Hello. This is a half-automatic uniqueness check by the content-watch service Please report any inaccuracies  <b> The uniqueness of your stat th according to the content-watch.ru service is equal to: "+ data.percent +"% </b><br> ";
  
  var d = new Date(); // Today!

  d.setDate(d.getDate() - 1); // Yesterday!
    d = d.toJSON().split("T")[0];
        
    let permlink = new Date().toISOString().replace(/[^a-zA-Z0-9]+/g, '').toLowerCase();
    
    const url = new URL(qqq);

let test2 = url.pathname.split('/');
 test2 = test2[3];

console.log('TITLE');
console.log(test2);
console.log(qqq);

console.log('TITLE');


//const params = new URLSearchParams(url.search)
//console.log(params.get("filter"))

  steem.broadcast.comment(
            wifkey, // Your posting wif
            aaa, // Parent Author
  test2, // Parent Permlink
        votey,
        permlink, // Your post permlink
        '', // Title
        answer2, // Body
        { tags: ['thanks'], app: 'ganeshaway' }, // Json Metadata
        function(err, result) {
            console.log(err, result)});




        

          const sql = `UPDATE ${mytable_p} SET percent='${data.percent}' WHERE url='${users[post_number].url}' LIMIT 1000`;
             console.log(sql)
    
    
    
           connection.query(sql,function(err, results) {
            if(err) console.log(err);
        //  console.log(results);
            });
            
    


        }

const url = new URL('http://www.somedomain.com/account/search?filter=a#top');
console.log(url.pathname.split('/'));
const params = new URLSearchParams(url.search)
//console.log(params.get("filter"))
      //  console.log('makeGetRequest')
        makeGetRequest('https://steemit.com'+users[post_number].url,users[post_number].author);
      //  console.log(users[post_number].url)
      //  console.log(users[post_number].author)
        
  }
    });
    
   });
   
                        //  connection.end();

                            }
                    
        

image.png

Sort:  

This post has been featured in the latest edition of Steem News...

I have included this post in the 27th issue of Steem News Magazine For Steemit Platform | December 12, 2021.

 2 years ago 

Thank You Very Much

Coin Marketplace

STEEM 0.28
TRX 0.11
JST 0.031
BTC 67962.69
ETH 3852.35
USDT 1.00
SBD 3.66