Advertisement
Guest User

Untitled

a guest
Apr 7th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.39 KB | None | 0 0
  1. #!/bin/bash
  2. # Сумма оценок пользователя в сообщениях форума на сайте skisport.ru
  3.                                                                        
  4. user_id=975                                                             # номер пользователя
  5. if [ -n "$1" ]
  6. then
  7.     user_id="$1"
  8. fi
  9. user_page='https://www.skisport.ru/people/forum/'$user_id'/'
  10.  
  11. rating_plus=0
  12. rating_minus=0
  13.  
  14. pagesN=1
  15. res=`curl -s $user_page | grep 'последняя'`                                # поиск ссылки на последнюю страницу комментариев
  16. comments=`echo $res`                                                   
  17. if [ -n "$res" ]
  18. then
  19.     prefix='<li><a href="/people/forum/'$user_id'/?PAGEN_1='            # текст ссылки до номера на последнюю страницу
  20.     suffix='">последняя</a></li>'                                     
  21.     pagesN=${comments#$prefix}
  22.     pagesN=${pagesN//$suffix/''}                                        # количество страниц ссылок на комментарии пользователя
  23. fi
  24.  
  25. for (( indx=1; indx<=$pagesN; indx++ ))
  26. do
  27.     page_url=$user_page'?PAGEN_1='$indx
  28.     comment_links=`curl -s $page_url | grep 'href="[a-zA-Z0-9/-]*/#[0-9]*"'`
  29.     for comment in $comment_links
  30.     do
  31.         pos=`expr index "$comment" \"`                                  # начало относительной ссылки, выкидываем <a href="
  32.         if [ $pos -eq 0 ]
  33.         then
  34.             continue
  35.         fi
  36.         comment_url='https://www.skisport.ru'${comment:$pos}            # абcолютная ссылка на коммент
  37.         comment_url=${comment_url//'"'/''}                              
  38.         #echo $comment_url
  39.         pos2=`expr index "$comment_url" \#`
  40.         comment_id=${comment_url:$pos2}                                 # id комментария (номер в конце ссылки после решетки)
  41.                                                                        
  42.         votes=`curl -s $comment_url | grep -A3 "[a-zA-Z-]*$comment_id[0-9-]*result" | grep "олосов"`
  43.         if echo "$votes" | grep "нет голосов" > /dev/null
  44.         then
  45.             echo $comment_url' 0 0'
  46.             continue
  47.         fi
  48.         votes_plus=`echo $votes | awk -F" " '{print $6}'`
  49.         votes_minus=`echo $votes | awk -F" " '{print $9}'`
  50.         rating_plus=$(expr $rating_plus + $votes_plus)
  51.         rating_minus=$(expr $rating_minus + $votes_minus)
  52.         echo $comment_url' '$votes_plus $votes_minus '( ' $rating_plus $rating_minus ')'
  53.     done  
  54. done
  55. rating=$(expr $rating_plus - $rating_minus)
  56.  
  57. echo 'рейтинг пользователя '$user_id' по сообщениям форума = '$rating' (+'$rating_plus' -'$rating_minus')'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement