Cyber Anakins Lightsaber - A Minishell-based backdoor

Current Path : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/
Upload File :
Current File : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/bookinfo.js

filialTable = [ [11,18,'Центральная городская библиотека'],
								//[1,17],
								[3,27],
								[11,20],
					[4,22,'Библиотека № 4 «Центральная детская библиотека имени Бориса Заходера»'],
					[5,24,'Библиотека № 5 «Библиотека семейного чтения и досуга им. С.Я. Маршака»'],
					[6,21],
					[7,25],
					[8,28],
					[12,19],
					[13,23],
					[14,26]
				];
function departmentToFilial(bfDepID)
{
	for(var j=0; j < filialTable.length; j++)
	{
		if (filialTable[j][1]==bfDepID)
		{
			var department = filialTable[j][2] ? filialTable[j][2] : 'Библиотека №'+filialTable[j][0];
			return {id:filialTable[j][0],name:department};
		}
	}
	return {id:0,name:'???'};
}

function bookInfoDialog(book)
{
	var bookName = book.title;
	if (book.subTitle!='') bookName+='. '+book.subTitle;
	if (book.volume!='') bookName+='. '+book.volume;

	var dlg = openDialogBox(bookName);

	var table = dlg.innerElement.appendChild(document.createElement('TABLE'));
	var tbody = table.appendChild(document.createElement('TBODY'));
	var tr = tbody.appendChild(document.createElement('TR'));


	var td = tr.appendChild(document.createElement('TD'));
	td.vAlign="top";
	td.style.paddingRight=10;

	var titleURL = book.cover;
	if (titleURL=="") titleURL = "notitle.jpg";
	else
	if (!titleURL.match(/^http/)) titleURL ="https://biblio-fond.ru/"+titleURL;


	var a = td.appendChild(document.createElement('A'));
	a.href=titleURL;
	a.target="IMAGE";
	
	var img = a.appendChild(document.createElement('IMG'));
	img.onload = function()
		{
			dlg.alignInScreenCenter();
		};
	img.height=320;
	img.style.maxWidth=320;
	img.src=titleURL;


	td = tr.appendChild(document.createElement('TD'));
	td.vAlign="top";


	var scrollBox = td.appendChild(document.createElement('DIV'));
	scrollBox.style.width=window.innerWidth - 600;
	scrollBox.style.height=window.innerHeight - 180;
	scrollBox.style.overflowY="scroll";
	scrollBox.style.border="1px solid #e0e0e0";
	scrollBox.style.padding="10 10 10 10";


	table = scrollBox.appendChild(document.createElement('TABLE'));
	table.cellSpacing=0;
	table.cellPadding=4;
	tbody = table.appendChild(document.createElement('TBODY'));
	
	tr = tbody.appendChild(document.createElement('TR'));
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgField";
	td.innerHTML = "Авторы:";
	td.vAlign="top";
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgValue";

	var html = '';
	var authors = book.authors.split('\n');
	for(var i=0; i < authors.length; i++)
	{
		if (i > 0) html+='<br>';
		var author = authors[i].split('|');

		if (author[1]!='') html+=_html_(author[1])+' ';
		html+=_html_(author[3]);
	}

	td.innerHTML = html;




	var txt = '';
	var genres = book.genres.split('\n');
	for(var i=0; i < genres.length; i++)
	{
		if (txt!='') txt+=', ';
		txt+=_html_(genres[i]);
	}

	tr = tbody.appendChild(document.createElement('TR'));
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgField";
	td.innerHTML = "Жанры:";
	td.vAlign="top";
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgValue";
	td.innerHTML = txt;

	tr = tbody.appendChild(document.createElement('TR'));
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgField";
	td.innerHTML = "Серия:";
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgValue";
	td.innerHTML = book.seriaName;



	tr = tbody.appendChild(document.createElement('TR'));
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgField";
	td.innerHTML = "ISBN:";
	td = tr.appendChild(document.createElement('TD'));
	td.className="bookDlgValue";
	td.innerHTML = _html_(book.isbn);



	var pages = book.pages;
	if (book.illustration)
	{
		if (pages!='') pages+=' ';
		pages+='ил.';
	}
	if (pages!='')
	{
		tr = tbody.appendChild(document.createElement('TR'));
		td = tr.appendChild(document.createElement('TD'));
		td.className="bookDlgField";
		td.innerHTML = "Число страниц:";
		td = tr.appendChild(document.createElement('TD'));
		td.className="bookDlgValue";
		td.innerHTML = pages;
	}

	if (book.age>=0)
	{
		tr = tbody.appendChild(document.createElement('TR'));
		td = tr.appendChild(document.createElement('TD'));
		td.className="bookDlgField";
		td.innerHTML = "Категория:";
		td = tr.appendChild(document.createElement('TD'));
		td.className="bookDlgValue";
		td.innerHTML = book.age+'+';
	}
	var publisher = book.publisher;
	var city = book.city;
	var year = book.year;

	s = '';
	if (city!='') s = city;
	if (publisher!='')
	{
		if (s!='') s+', ';
		s+=", Издательство "+_html_(publisher);
	}
	if (year>0)
	{
		if (s!='') s+=', ';
		s+=year+' г.';
	}	
	var div;
	if (s!='') scrollBox.appendChild(document.createElement('DIV')).innerHTML = '<center><b>'+s+'</b></center>';
    
    if (book.desc!='')
	{
		div = scrollBox.appendChild(document.createElement('DIV'));
		div.style.marginTop=10;
		div.style.textAlign="justify";
		div.innerHTML = "<b>Аннотация:</b><br>"+_html_br_(book.desc);
	}

	sendXHR('https://biblio-fond.ru/api.php','action=exemplar:list&book='+book.id,
		function(response)
		{
			var exemplars = JSON.parse(response);

			// [site-filial, biblio-fond-id, count]
			

			var div = scrollBox.appendChild(document.createElement('DIV'));
			div.innerHTML= "Книга представлена в библиотеках:";
			div.style.fontWeight="bold";
			div.style.marginTop = 10;
			div.align="center";

			var ul = scrollBox.appendChild(document.createElement('UL'));

			for(var j=0; j < filialTable.length; j++)
			{
				var count = 0;
				for(var i=0; i < exemplars.length; i++)
				{
					if (exemplars[i].departmentID == filialTable[j][1])
						count++;
				}

				if (count > 0)
				{
					var link = 'filial.php?filial='+filialTable[j][0];
					var department = filialTable[j][2] ? filialTable[j][2] : 'Библиотека №'+filialTable[j][0];

					department = '<a href="'+link+'">'+department+'</a>';
					div = ul.appendChild(document.createElement('LI'));
					div.style.marginTop=10;
					div.style.marginBottom=10;
					div.innerHTML = department+' ('+count+' экз.)';
				}
			}	
		},
		function(error)
		{
			console.error(error);
		});

	
	var div = dlg.innerElement.appendChild(document.createElement('CENTER'));
	div.style.padding="10 10 10 10";
	var btn = div.appendChild(createInput('BUTTON'));
	btn.value="Закрыть";
	btn.onclick=function() { dlg.close(); };

	dlg.alignInScreenCenter();
	setTimeout(function() { dlg.alignInScreenCenter(); }, 100);
}


function showBook(id)
{
	sendXHR('https://biblio-fond.ru/api.php','action=book:get&id='+id,
		function(response)
		{
			bookInfoDialog(JSON.parse(response));			
		},
		function(error)
		{
			errorBox(error);
		});	
}

May the force be with you, always.