Notes/5_bash

3_test 4_i3 5_bash 6_avia Archive Life

Neocities 01scrip_v0.6

# ---------------------------------------- составляем список файлов 
bd_former() {
  for i in `find ./* -type f | sed  's/..//'`
    do stat -c '%Y     %n' $i >> bd
  done
  
  sed -i '/bd_old/d' bd
  sort -o bd bd
}

mv bd bd_old		# защищает от дописывания новых строк в конец старого файла 
rm -f up		# век живи - век учись: ключ -f подавляет сообщение, если там нет up.
bd_former
# ---------------------------------------- определяем характер изменения
of=`comm -23 bd_old bd|awk '{print $2}'|sort`
jof=`grep html <<< "$of"`
nf=`comm -13 bd_old bd|awk '{print $2}'|sort`
jnf=`grep html <<< "$nf"`

for i in $nf		# удаляем из старых то, что есть и в новых
  do of=`echo ${of/$i/}`
done

if [[ $jof != $jnf ]]
then 
  bash nav_paster*	# если есть уникальные html, то обновляем навигацию
  bash lin_paster*
  nf+=$'\n'`cat bd|grep html|awk '{print $2}'`	# добавляем все html, даст дублирование
  nf=`sort -u <<< "$nf"|uniq`			# удаляем дубли
  rm -f bd
  touch `find`		# трогаем ВСЕ файлы
  bd_former		# обновляем bd. теперь везде - новое время.
  echo "--- some navigation changes !!!----"
fi
# ---------------------------------------- формируем аплоадный скрипт
echo "`echo $of |wc -w` for deleting"
for i in $of
do
  echo "	$i"
  echo "curl -d filenames[]=$i https://a-notes:********@neocities.org/api/delete" >> up
done

echo "`echo $nf |wc -w` for uploading"
for i in $nf
do
  echo "	$i"
  echo "curl -sS -F $i=@$i https://a-notes:********@neocities.org/api/upload" >> up
done

echo "rm up" >> up
rm bd_old
 

Neocities lin_paster_v0.3

second_string_paster () {
  d=${file%.html}                       # определяем имя файла: отрезаем .html
  d=${d##*/}                            # и отрезаем путь
  a=${file#.}                           # определяем путь к файлу, нaчиная с /, но без начальной точки
  a=${a%/*}                             # и отрезаем имя
  if [ $d != "index" ]; 
    then a=${a%/*}                      # отрезаем последний 'Sub'
  fi
  c=''                                  # будущая серединка
  for i in `echo $a|grep -o "Sub"`      # цикл по количеству Sub
  do
    b=${a##*/}                          # находим имя последней папки, отрезая начало пути
    c="/<a href="$a">"$b$c              # </a>пришиваем href=, формируем ссылку, ставим ее в начало строки
    a=${a%/*/*}                         # отбрасываем последнюю папку и последний Sub
  done
  if [ $d = "index" ]                   # пришиваем гриву и ХВОСТИК.
    then str2="<h1><a href=/>Notes"$c"</a></h1>" 
    else str2="<h1><a href=/>Notes"$c"/<a href=$d.html>$d</a></h1>"
  fi
  echo $file
  sed -i "2d;1a$str2" $file             # вписываем результат в файл
}

for file in `find|grep html`
  do second_string_paster
done
 

Neocities nav_paster_v0.6

root=`pwd`
  
pastin() {
  sed -i "3,/<hr>/c$nav <hr>" $1	# выкидываем старую навигацию ДО <hr> !!!!! --- вставляем новую (и харю)
  sed -i '3{s/<a/ <a/g;s/> />\n/g}' $1	# вставляем красивые отступы и режем строку навигации на ссылки отдельными строками
  #head $1				# '$i'  - имя файла. если разблокировано, выведет верхушку, с новой навигацией.
}
nav_former() {
  ar=`find -mindepth $1 -maxdepth $1  -name '*.html' -printf '%P\n'|sort`
  for i in $ar
    do nam=${i%.html} 			# 'nam'- имя файла без расширения
    nam=${nam%/index}			# это - только для индексов!
    nam=${nam#*/}
    nav+=" <a href=$i>$nam</a>"		# 'nav'- уже навигация, все в одну строку
  done
}
autonav() {				# главная функция
  #echo $dir				# вставка идет в индекс и в файлы, лежащие в 'Sub' данной директории
  cd $dir				# переходим в директорию, выбранную в главном цикле
  nav=''
  nav_former 2
  list=$ar
  nav_former 3
  if [[ -e index.html ]]
    then   pastin index.html		# вставляем в индекс
    else echo "WRONG! index.html does not exist!"
  fi 
  nav=${nav//'Sub/'/}			# модифицируем навигацию для файлов: срезаем в начале 'Sub/'
  for f in $list			# вставляем в файлы, лежаще в 'Sub'
    do pastin $f
  done
  cd $root				# возврат в корень. поиск директорий идет от корня. 
}

for dir in `find -type d \! -name Sub` 	# поиск директорий, в которых лежат индексы
  do autonav
done

Parsers

https://www.toptal.com/designers/subtlepatterns/

	rm urls *.html

	for i in `seq 45`
	do
	wget https://www.toptal.com/designers/subtlepatterns/page/$i/
	sed -n '/patternpreview/p' index.html | `
	`sed -e 's/^.*desi/https:\/\/www.toptal.com\/desidesi/;s/png.*/png/'>>urls
	rm index.html
	done