first commit
16
src/API.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
function API($method, $data)
|
||||
{
|
||||
|
||||
|
||||
$ch = curl_init();
|
||||
|
||||
curl_setopt($ch, CURLOPT_URL, "https://api.telegram.org/".$GLOBALS["config"]["lgbt"]["TOKEN"]."/" . $method);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
|
||||
return json_decode(curl_exec($ch) , true);
|
||||
}
|
19567
src/DC.txt
Normal file
100
src/aalist
Normal file
@ -0,0 +1,100 @@
|
||||
https://youtube.com/watch?v=cpCdm7ZGrfA
|
||||
https://youtube.com/watch?v=h29zK6_VstU
|
||||
https://youtube.com/watch?v=UEGVxLs6Sr0
|
||||
https://youtube.com/watch?v=GDP4ds-ozOI
|
||||
https://youtube.com/watch?v=9_sAzyTCZzQ
|
||||
https://youtube.com/watch?v=ANcuqk7x33o
|
||||
https://youtube.com/watch?v=HK2VLhbSaoc
|
||||
https://youtube.com/watch?v=UxnvGDK0WGM
|
||||
https://youtube.com/watch?v=0nPfjHuKtw8
|
||||
https://youtube.com/watch?v=YmYPxdQpwpQ
|
||||
https://youtube.com/watch?v=lAWdWk6a2gg
|
||||
https://youtube.com/watch?v=SPOFjeHS_hc
|
||||
https://youtube.com/watch?v=upOhRRYVGkA
|
||||
https://youtube.com/watch?v=_ItfF7ZGDgE
|
||||
https://youtube.com/watch?v=B8eTxPdU4sQ
|
||||
https://youtube.com/watch?v=pLtzOZe1vZI
|
||||
https://youtube.com/watch?v=KbFlZQfXFjc
|
||||
https://youtube.com/watch?v=dr4fdf8F3Yk
|
||||
https://youtube.com/watch?v=oVbFMCFl9xE
|
||||
https://youtube.com/watch?v=d1JT6ZDqIE0
|
||||
https://youtube.com/watch?v=UPdY_f1ybn8
|
||||
https://youtube.com/watch?v=V32y9gHJP0E
|
||||
https://youtube.com/watch?v=e_FwZ6E5adA
|
||||
https://youtube.com/watch?v=EtMfvQc-Rh8
|
||||
https://youtube.com/watch?v=Sz-m7l_QoEo
|
||||
https://youtube.com/watch?v=en8l-_-rBgw
|
||||
https://youtube.com/watch?v=CvqIHkfXlM8
|
||||
https://youtube.com/watch?v=3MRIi0ac8hc
|
||||
https://youtube.com/watch?v=JMg6N9PuOi8
|
||||
https://youtube.com/watch?v=2FXO-QVjh9g
|
||||
https://youtube.com/watch?v=5_tPakMnuyI
|
||||
https://youtube.com/watch?v=obVQPIEPdRU
|
||||
https://youtube.com/watch?v=HNBhziViepg
|
||||
https://youtube.com/watch?v=ANcWZHFIcIM
|
||||
https://youtube.com/watch?v=yQpyHftAF5U
|
||||
https://youtube.com/watch?v=C_mNhW9PfS4
|
||||
https://youtube.com/watch?v=C_Bv1wF40JI
|
||||
https://youtube.com/watch?v=3tgDWKlJsSM
|
||||
https://youtube.com/watch?v=_HaMSS7-lwQ
|
||||
https://youtube.com/watch?v=-i5tt2-V2SE
|
||||
https://youtube.com/watch?v=lP06Gve7VWg
|
||||
https://youtube.com/watch?v=36pwF_fh5b0
|
||||
https://youtube.com/watch?v=gBfFRGY-vto
|
||||
https://youtube.com/watch?v=7Cl98sQPDhU
|
||||
https://youtube.com/watch?v=wVkyy04CkTk
|
||||
https://youtube.com/watch?v=YB5MFl3aH2Q
|
||||
https://youtube.com/watch?v=02oEoK84490
|
||||
https://youtube.com/watch?v=-Q2X1uoWEdI
|
||||
https://youtube.com/watch?v=GjmCbOFI1bk
|
||||
https://youtube.com/watch?v=f54XlAqBDug
|
||||
https://youtube.com/watch?v=z6kKqU-FkRc
|
||||
https://youtube.com/watch?v=9yA3qrxxues
|
||||
https://youtube.com/watch?v=VXS56M5wLJE
|
||||
https://youtube.com/watch?v=72LiIZ3M8jM
|
||||
https://youtube.com/watch?v=vYPL7ZN4E_o
|
||||
https://youtube.com/watch?v=pYfV_OzdYPk
|
||||
https://youtube.com/watch?v=UjvOaYK7SgM
|
||||
https://youtube.com/watch?v=HtlWpGcCl5k
|
||||
https://youtube.com/watch?v=sAqnzsnw1m0
|
||||
https://youtube.com/watch?v=Gr4ELHLTV-A
|
||||
https://youtube.com/watch?v=sAM-XMc8OAc
|
||||
https://youtube.com/watch?v=dcuK7tHFg6M
|
||||
https://youtube.com/watch?v=QI55FRv28Kw
|
||||
https://youtube.com/watch?v=jNPkCfUHgtI
|
||||
https://youtube.com/watch?v=aC_-WxlTMVQ
|
||||
https://youtube.com/watch?v=VzW7ou4UaZg
|
||||
https://youtube.com/watch?v=kkfX4Y-WkDs
|
||||
https://youtube.com/watch?v=4GeSY3Kkbgc
|
||||
https://youtube.com/watch?v=hNMXmNUKH4s
|
||||
https://youtube.com/watch?v=KepUb2l6K3E
|
||||
https://youtube.com/watch?v=Zg_2xTUwyZA
|
||||
https://youtube.com/watch?v=QI_0ECz59ug
|
||||
https://youtube.com/watch?v=_TePxy7Hc3M
|
||||
https://youtube.com/watch?v=9IoF2nhr1Jk
|
||||
https://youtube.com/watch?v=lpSpJqFVMtc
|
||||
https://youtube.com/watch?v=b6pvnwwbNFA
|
||||
https://youtube.com/watch?v=wP1DJ_D4chA
|
||||
https://youtube.com/watch?v=UtXiYk1WUwQ
|
||||
https://youtube.com/watch?v=DCm4mlQi4Rc
|
||||
https://youtube.com/watch?v=Hy-qT6qfZSA
|
||||
https://youtube.com/watch?v=vru3V9XcNDc
|
||||
https://youtube.com/watch?v=V-DUwGZiN_E
|
||||
https://youtube.com/watch?v=_6nkTj26ghk
|
||||
https://youtube.com/watch?v=xBk1GIy3m4I
|
||||
https://youtube.com/watch?v=JKXJSVafDag
|
||||
https://youtube.com/watch?v=t1rjTDfLhLM
|
||||
https://youtube.com/watch?v=QJa9u_5_zK4
|
||||
https://youtube.com/watch?v=Ry87VcpXwjo
|
||||
https://youtube.com/watch?v=2DTjNriHboA
|
||||
https://youtube.com/watch?v=Bag1lm8CA4M
|
||||
https://youtube.com/watch?v=ZI0JFEHElUA
|
||||
https://youtube.com/watch?v=MIQXomPzm2I
|
||||
https://youtube.com/watch?v=iFQ8wVjTPiE
|
||||
https://youtube.com/watch?v=maqy9IuJjCo
|
||||
https://youtube.com/watch?v=o7GMQvoJmQQ
|
||||
https://youtube.com/watch?v=76RcshkmOYk
|
||||
https://youtube.com/watch?v=yDHWjWSxj2s
|
||||
https://youtube.com/watch?v=i_t_dhE1zIE
|
||||
https://youtube.com/watch?v=6TjCzeXciV0
|
||||
https://youtube.com/watch?v=5quxFte-97o
|
42414
src/bibbia.txt
Normal file
1
src/cah.json
Normal file
106
src/chart.php
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
function orientChart($orients,$filename){
|
||||
/*************Configuration Starts******************/
|
||||
|
||||
// Heading
|
||||
$chartTitle = "Orientamenti";
|
||||
|
||||
// Branding / extra label (optional)
|
||||
$logo = "Dati del ".date("d/m/Y").", ".date("H:i:s");
|
||||
|
||||
// Data
|
||||
$arrData=$orients;
|
||||
|
||||
/*************************End****************************/
|
||||
|
||||
/*****************For Programmers************************/
|
||||
$scale=2;
|
||||
$imageWidth = 300*$scale; //image width
|
||||
$imageHeight = 200*$scale; //image height
|
||||
$diameter = 150*$scale-50; //pie diameter
|
||||
$centerX = 100*$scale; //pie center pixels x
|
||||
$centerY = 100*$scale; //pie center pixels y
|
||||
$labelWidth = 10*$scale; //label width, no need to change
|
||||
/*************************End****************************/
|
||||
|
||||
createPieChart($arrData, $chartTitle, $logo, $imageWidth, $imageHeight, $diameter, $centerX, $centerY, $labelWidth,$filename);
|
||||
}
|
||||
|
||||
|
||||
function createPieChart($arrData, $chartTitle, $logo, $imageWidth, $imageHeight, $diameter, $centerX, $centerY, $labelWidth,$filename) {
|
||||
|
||||
$item = array_keys($arrData);
|
||||
$data = array_values($arrData);
|
||||
|
||||
for( $i = 0; $i < count( $data ); $i++ ) {
|
||||
$dataTotal += $data[ $i ];
|
||||
}
|
||||
|
||||
$im = ImageCreate( $imageWidth, $imageHeight );
|
||||
|
||||
$color[] = ImageColorAllocate( $im, 255, 0, 0 ); //red
|
||||
$color[] = ImageColorAllocate( $im, 255, 204, 0 );//yellow
|
||||
$color[] = ImageColorAllocate( $im, 153, 204, 0 );//green
|
||||
$color[] = ImageColorAllocate( $im, 153, 51, 255 );//purple
|
||||
$color[] = ImageColorAllocate( $im, 0, 128, 255 );//blue
|
||||
$color[] = ImageColorAllocate( $im, 255, 0, 128 );//pink
|
||||
$color[] = ImageColorAllocate( $im, 192, 192, 192 );//grey
|
||||
$color[] = ImageColorAllocate( $im, 204, 204, 0 );
|
||||
$color[] = ImageColorAllocate( $im, 64, 128, 128 );
|
||||
$color[] = ImageColorAllocate( $im, 204, 102, 153 );
|
||||
$white = ImageColorAllocate( $im, 255, 255, 255 );
|
||||
$black = ImageColorAllocate( $im, 0, 0, 0 );
|
||||
$grey = ImageColorAllocate( $im, 215, 215, 215 );
|
||||
|
||||
ImageFill( $im, 0, 0, $white );
|
||||
|
||||
$degree = 0;
|
||||
for( $i = 0; $i < count( $data ); $i++ ) {
|
||||
$startDegree = round( $degree );
|
||||
$degree += ( $data[ $i ] / $dataTotal ) * 360;
|
||||
$endDegree = round( $degree );
|
||||
|
||||
$currentColor = $color[ $i % ( count( $color ) ) ];
|
||||
|
||||
ImageArc( $im, $centerX, $centerY, $diameter, $diameter, $startDegree, $endDegree, $currentColor );
|
||||
|
||||
list( $arcX, $arcY ) = circlePoint( $startDegree, $diameter );
|
||||
ImageLine( $im, $centerX, $centerY, floor( $centerX + $arcX ), floor( $centerY + $arcY ), $currentColor );
|
||||
|
||||
list( $arcX, $arcY ) = circlePoint( $endDegree, $diameter );
|
||||
ImageLine( $im, $centerX, $centerY, ceil( $centerX + $arcX ), ceil( $centerY + $arcY ), $currentColor );
|
||||
|
||||
$midPoint = round( ( ( $endDegree - $startDegree ) / 2 ) + $startDegree );
|
||||
list( $arcX, $arcY ) = circlePoint( $midPoint, $diameter / 1.5 );
|
||||
ImageFillToBorder( $im, floor( $centerX + $arcX ), floor( $centerY + $arcY ), $currentColor, $currentColor );
|
||||
ImageString( $im, 2, floor( $centerX + $arcX ), floor( $centerY + $arcY ), intval( round( $data[ $i ] / $dataTotal * 100 ) ) . "%", $black );
|
||||
}
|
||||
|
||||
$labelX = $centerX + $diameter / 2 + 10;
|
||||
$labelY = $centerY - $diameter / 4;
|
||||
$titleX = $labelX - $diameter / 4;
|
||||
$titleY = $centerY - $diameter / 2;
|
||||
ImageString( $im, 3, $titleX + 1, $titleY + 1, $chartTitle, $grey );
|
||||
ImageString( $im, 3, $titleX, $titleY, $chartTitle, $black );
|
||||
|
||||
for( $i = 0; $i < count( $item ); $i++ ) {
|
||||
$currentColor = $color[ $i % ( count( $color ) ) ];
|
||||
ImageRectangle( $im, $labelX, $labelY, $labelX + $labelWidth, $labelY + $labelWidth, $black );
|
||||
ImageFilledRectangle( $im, $labelX + 1, $labelY + 1, $labelX + $labelWidth, $labelY + $labelWidth, $currentColor );
|
||||
ImageString( $im, 2, $labelX + $labelWidth + 5, $labelY, $item[ $i ], $black );
|
||||
ImageString( $im, 2, $labelX + $labelWidth + 90, $labelY, $data[ $i ]." %", $black );
|
||||
$labelY += $labelWidth + 2;
|
||||
}
|
||||
|
||||
//ImageString( $im, 3, $labelX, $labelY, "Total:", $black );
|
||||
ImageString( $im, 3, $labelX + $labelWidth + 60, $labelY, $dataTotal, $black );
|
||||
ImageString( $im, 2, $labelX, $labelY + 15, $logo, $black );
|
||||
ImagePNG( $im ,$filename);
|
||||
ImageDestroy( $im );
|
||||
}
|
||||
|
||||
function circlePoint( $deg, $dia ) {
|
||||
$x = cos( deg2rad( $deg ) ) * ( $dia / 2 );
|
||||
$y = sin( deg2rad( $deg ) ) * ( $dia / 2 );
|
||||
return array( $x, $y );
|
||||
}
|
1
src/eq.json
Normal file
86
src/eva.php
Normal file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
function evaSplit($text){
|
||||
$text=chunk_split($text,38,"\n");
|
||||
$list=explode("\n",$text);
|
||||
array_filter($list);
|
||||
$f="";
|
||||
foreach($list as $el){
|
||||
$f.=htmlentities(trim($el))."<br />";
|
||||
}
|
||||
return $f;
|
||||
}
|
||||
$data=json_decode($_GET["data"]);
|
||||
if($data==null){
|
||||
?>
|
||||
<header class="eva-heading">
|
||||
<h2 class="eva-heading__title">NEON</h2>
|
||||
<h2 class="eva-heading__title">GENESIS</h2>
|
||||
<h1 class="eva-heading__title">EVANGELION</h1>
|
||||
<h3 class="eva-heading__episode-number">EPISODE: 4</h3>
|
||||
<h4 class="eva-heading__episode-title">
|
||||
Those woman longed for the touch of <br>others' lips, and thus invited their kisses
|
||||
</h4>
|
||||
</header>
|
||||
<?php
|
||||
}
|
||||
else{
|
||||
?>
|
||||
<header class="eva-heading">
|
||||
<h2 class="eva-heading__title"><?php echo htmlentities($data[0]); ?></h2>
|
||||
<h2 class="eva-heading__title"><?php echo htmlentities($data[1]); ?></h2>
|
||||
<h1 class="eva-heading__title"><?php echo htmlentities($data[2]); ?></h1>
|
||||
<h3 class="eva-heading__episode-number"><?php echo htmlentities($data[3]); ?></h3>
|
||||
<h4 class="eva-heading__episode-title">
|
||||
<?php echo evaSplit($data[4]); ?>
|
||||
</h4>
|
||||
</header>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<style>* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
.eva-heading {
|
||||
padding: 32px;
|
||||
align-self: baseline;
|
||||
font-family: serif;
|
||||
color: white;
|
||||
text-shadow: 0 0 2px #e19a86, 0 0 1.5px #854535, 0 0 1.5px #5c150c;
|
||||
width:600px;
|
||||
height:478px;
|
||||
}
|
||||
|
||||
.eva-heading > h1 {
|
||||
font-size: 500%;
|
||||
}
|
||||
|
||||
.eva-heading > h2 {
|
||||
font-size: 300%;
|
||||
}
|
||||
|
||||
.eva-heading__title {
|
||||
transform: scale(1, 1.5);
|
||||
line-height: 1.2em;
|
||||
letter-spacing: -.03em;
|
||||
}
|
||||
|
||||
.eva-heading__episode-number {
|
||||
font-family: sans-serif;
|
||||
font-size: 180%;
|
||||
transform: scale(1, 1.5);
|
||||
letter-spacing: -.06em;
|
||||
margin: 10px 0 26px 0;
|
||||
}
|
||||
|
||||
.eva-heading__episode-title {
|
||||
transform: scale(1, 1.3);
|
||||
font-size: 170%;
|
||||
line-height: 1em;
|
||||
}
|
||||
</style>
|
4
src/evas/do.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
foreach(glob("*.gif") as $r){
|
||||
echo "\"https://webport.altervista.org/bots/telegram/lgbt/evas/".basename($r)."\",\n";
|
||||
}
|
BIN
src/evas/frame_00_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
src/evas/frame_01_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
src/evas/frame_02_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
src/evas/frame_03_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
src/evas/frame_04_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
src/evas/frame_05_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
src/evas/frame_06_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/evas/frame_07_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/evas/frame_08_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
src/evas/frame_09_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/evas/frame_10_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
src/evas/frame_11_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
src/evas/frame_12_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/evas/frame_13_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/evas/frame_14_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
src/evas/frame_15_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
src/evas/frame_16_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/evas/frame_17_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
src/evas/frame_18_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
src/evas/frame_19_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
src/evas/frame_20_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
src/evas/frame_21_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
src/evas/frame_22_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
src/evas/frame_23_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
src/evas/frame_24_delay-0.8s.gif
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
src/evas/frame_25_delay-1s.gif
Normal file
After Width: | Height: | Size: 20 KiB |
11
src/ezechiele.txt
Normal file
@ -0,0 +1,11 @@
|
||||
Ezechiele 25,17.
|
||||
Il cammino dell'uomo timorato è minacciato da ogni parte dalle iniquità degli esseri egoisti e dalla tirannia degli uomini malvagi.
|
||||
Benedetto sia colui che nel nome della carità e della buona volontà conduce i deboli attraverso la valle delle tenebre; perché egli è in verità il pastore di suo fratello e il ricercatore dei figli smarriti.
|
||||
E la mia giustizia calerà sopra di loro con grandissima vendetta e furiosissimo sdegno su coloro che si proveranno ad ammorbare ed infine a distruggere i miei fratelli.
|
||||
E tu saprai che il mio nome è quello del Signore quando farò calare la mia vendetta sopra di te.
|
||||
#
|
||||
Ezekiel 25:17.
|
||||
The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men.
|
||||
Blessed is He who in the name of charity and good will shepherds the weak through the valley of darkness, for He is truly his brother's keeper and the finder of lost children.
|
||||
And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy My brothers.
|
||||
And you will know My name is the Lord when I lay My vengeance upon thee.
|
10
src/fetchCard.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
if($_GET["pass"]!="737373737361113273") exit;
|
||||
$file = 'gdImg/archive/'.$_GET["id"].'.fi.jpeg';
|
||||
$type = 'image/jpeg'; header('Content-Type:'.$type); header('Content-Length: ' . filesize($file));
|
||||
readfile($file);
|
||||
unlink($file);
|
||||
unlink('gdImg/archive/'.$_GET["id"].'.pp.jpeg');
|
BIN
src/gdImg/Roboto-Thin.ttf
Normal file
BIN
src/gdImg/admin.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
src/gdImg/archive/.fi.jpeg
Normal file
After Width: | Height: | Size: 43 KiB |
22
src/gdImg/archive/.htaccess
Normal file
@ -0,0 +1,22 @@
|
||||
# DISABLE CACHING
|
||||
<IfModule mod_headers.c>
|
||||
Header set Cache-Control "no-cache, no-store, must-revalidate"
|
||||
Header set Pragma "no-cache"
|
||||
Header set Expires 0
|
||||
</IfModule>
|
||||
|
||||
<FilesMatch "\.(css|flv|gif|htm|html|ico|jpe|jpeg|jpg|js|mp3|mp4|png|pdf|swf|txt)$">
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive Off
|
||||
</IfModule>
|
||||
<IfModule mod_headers.c>
|
||||
FileETag None
|
||||
Header unset ETag
|
||||
Header unset Pragma
|
||||
Header unset Cache-Control
|
||||
Header unset Last-Modified
|
||||
Header set Pragma "no-cache"
|
||||
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
|
||||
Header set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
|
||||
</IfModule>
|
||||
</FilesMatch>
|
1
src/gdImg/archive/.pp.jpeg
Normal file
@ -0,0 +1 @@
|
||||
{"ok":false,"error_code":404,"description":"Not Found"}
|
BIN
src/gdImg/chart.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
src/gdImg/cid.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
src/gdImg/default.jpg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
src/gdImg/dev.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
src/gdImg/flags/asex.png
Normal file
After Width: | Height: | Size: 431 B |
BIN
src/gdImg/flags/bi.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/gdImg/flags/etero.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/gdImg/flags/gay.png
Normal file
After Width: | Height: | Size: 735 B |
BIN
src/gdImg/flags/lesbian.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
src/gdImg/flags/omni.png
Normal file
After Width: | Height: | Size: 402 B |
BIN
src/gdImg/flags/pan.png
Normal file
After Width: | Height: | Size: 404 B |
BIN
src/gdImg/flags/questioning.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
src/gdImg/flags/trans.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
122
src/gdImg/gd.php
Normal file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
function flagGetFromUser($p){
|
||||
$o = strtoupper($p->orient);
|
||||
if (contains("LESB", $o)) return "lesbian";
|
||||
if (contains("BI", $o)) return "bi";
|
||||
if (contains("ACE", $o)) return "asex";
|
||||
if (contains("ASE", $o)) return "asex";
|
||||
if (contains("GAY", $o)) return "gay";
|
||||
if (contains("BSX", $o)) return "bi";
|
||||
if (contains("PAN", $o)) return "pan";
|
||||
if (contains("LELL", $o)) return "lesbian";
|
||||
if (contains("OMNI", $o)) return "omni";
|
||||
if (contains("QUEST", $o)) return "questioning";
|
||||
if (contains("ETERO", $o) || contains("HET", $o)) return "etero";
|
||||
return false;
|
||||
}
|
||||
function dlImage($userId,$fileName){
|
||||
|
||||
|
||||
|
||||
$r=API("getUserProfilePhotos", ["user_id" => $userId]);
|
||||
$n=$r["result"]["photos"];
|
||||
$a=0;//count($n)-1;
|
||||
$b=count($n[$a])-1;
|
||||
$file_id=$r["result"]["photos"][0][0]["file_id"];
|
||||
if($file_id==null){
|
||||
copy("gdImg/default.jpg",$fileName);
|
||||
return 0;
|
||||
}
|
||||
|
||||
$fO=API("getFile", ["file_id" => $file_id]);
|
||||
$fu="https://api.telegram.org/file/".$GLOBALS["config"]["lgbt"]["TOKEN"]."/".$fO["result"]["file_path"];
|
||||
unlink($fileName);
|
||||
$ch = curl_init($fu);
|
||||
$fp = fopen($fileName, 'wb+');
|
||||
curl_setopt($ch, CURLOPT_FILE, $fp);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_exec($ch);
|
||||
curl_close($ch);
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function photo_id_by_user($u,$chat_id){
|
||||
dlImage($u->getId(),"gdImg/archive/".$u->getId().".pp.jpeg");
|
||||
$flag=flagGetFromUser($u);
|
||||
make_id_card_img($u->name,$u->gender,$u->orient,$u->birthDate." (".years($u->birthDate)." anni) ","gdImg/archive/".$u->getId().".pp.jpeg","gdImg/archive/".$u->getId().".fi.jpeg",$u->getId(),$chat_id,$flag);
|
||||
}
|
||||
function ellipses($text,$maxChar){
|
||||
return strlen($text) > $maxChar ? substr($text,0,$maxChar)."..." : $text;
|
||||
}
|
||||
function make_id_card_img($name,$gender,$orient,$birth,$userPhotoPath,$dest,$id,$chat_id,$fln,$template="gdImg/cid.png",$font_path = 'gdImg/Roboto-Thin.ttf'){
|
||||
$jpg_image = imagecreatefrompng($template);
|
||||
|
||||
|
||||
// Allocate A Color For The Text
|
||||
$white = imagecolorallocate($jpg_image, 255, 255, 255);
|
||||
|
||||
// Set Text to Be Printed On Image
|
||||
$name = ellipses($name,30);
|
||||
|
||||
imagettftext($jpg_image, 25, 0, 655, 305, $white, $font_path, $name);
|
||||
|
||||
$gender = ellipses($gender,15);
|
||||
|
||||
imagettftext($jpg_image, 25, 0, 655, 375, $white, $font_path, $gender);
|
||||
|
||||
|
||||
$orient = ellipses($orient,25);
|
||||
|
||||
if(is_admin($id,$chat_id)){
|
||||
$photo= imagecreatefrompng("gdImg/admin.png");
|
||||
list($width, $height) = getimagesize("gdImg/admin.png");
|
||||
$hw=150*$height/$width;
|
||||
if($hw>600){$hw=600;}
|
||||
imagecopyresized($jpg_image, $photo, 20, 600, 0, 0, 500, $hw, $width, $height+50);
|
||||
}
|
||||
if($id==$GLOBALS["config"]["lgbt"]["devId"]){
|
||||
$photo= imagecreatefrompng("gdImg/dev.png");
|
||||
list($width, $height) = getimagesize("gdImg/dev.png");
|
||||
$hw=150*$height/$width;
|
||||
if($hw>600){$hw=600;}
|
||||
imagecopyresized($jpg_image, $photo, 800, 0, 0, 0, 500, $hw, $width, $height);
|
||||
}
|
||||
imagettftext($jpg_image, 25, 0, 720, 435, $white, $font_path, $orient);
|
||||
|
||||
$birth = ellipses($birth,20);
|
||||
|
||||
imagettftext($jpg_image, 25, 0, 740, 495, $white, $font_path, $birth);
|
||||
|
||||
$photo= imagecreatefromjpeg($userPhotoPath);
|
||||
list($width, $height) = getimagesize($userPhotoPath);
|
||||
$hw=500*$height/$width;
|
||||
if($hw>600){$hw=600;}
|
||||
imagecopyresized($jpg_image, $photo, 10, 100, 0, 0, 500, $hw, $width, $height);
|
||||
|
||||
if($fln){
|
||||
$flag = imagecreatefrompng("gdImg/flags/".$fln.".png");
|
||||
list($width, $height) = getimagesize("gdImg/flags/".$fln.".png");
|
||||
$w2 = $width;
|
||||
//if($hw>600){$hw=600;}
|
||||
imagecopyresized($jpg_image, $flag, 10, 0, 0, 0, 200, 100, $width, $height);
|
||||
$gender = strtolower($gender);
|
||||
$orient = strtolower($orient);
|
||||
if(contains("mtf",$gender) || contains("ftm",$gender) || contains("trans",$gender) || contains("mtf",$orient) || contains("ftm",$orient) || contains("trans",$orient) ){
|
||||
$flag = imagecreatefrompng("gdImg/flags/trans.png");
|
||||
list($width, $height) = getimagesize("gdImg/flags/trans.png");
|
||||
//if($hw>600){$hw=600;}
|
||||
imagecopyresized($jpg_image, $flag, 200, 0, 0, 0, 200, 100, $width, $height);
|
||||
}
|
||||
}
|
||||
unlink($dest);
|
||||
// Send Image to Browser
|
||||
imagejpeg($jpg_image,$dest);
|
||||
|
||||
|
||||
|
||||
// Clear Memory
|
||||
imagedestroy($jpg_image);
|
||||
}
|
||||
?>
|
182
src/help.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"name": "Rainbow Bot",
|
||||
"version": "4.1.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mat",
|
||||
"username": "MtMsdns"
|
||||
},
|
||||
{
|
||||
"name": "Silvia",
|
||||
"username": "xSylla"
|
||||
}
|
||||
],
|
||||
"description": "Il bot é deputato a registrare i dettagli dei membri ma anche a varie altre cose.",
|
||||
"commands": [
|
||||
{
|
||||
"command": ".s",
|
||||
"arguments": "",
|
||||
"description": "Status del bot"
|
||||
},
|
||||
{
|
||||
"command": ".raBIO",
|
||||
"arguments": "",
|
||||
"description": "Random Anonymous Bio"
|
||||
},
|
||||
{
|
||||
"command": ".nr",
|
||||
"arguments": "",
|
||||
"description": "NaziRandom AI (lol)"
|
||||
},
|
||||
{
|
||||
"command": ".inspire",
|
||||
"arguments": "",
|
||||
"description" : "Random quote from inpsirobot.me"
|
||||
},
|
||||
{
|
||||
"command": ".tpdne",
|
||||
"arguments": "",
|
||||
"description" : "Random face from thispersondoesnotexist.com"
|
||||
},
|
||||
{
|
||||
"command": ".helpb",
|
||||
"arguments": "",
|
||||
"description": "Aiuto del bot"
|
||||
},
|
||||
{
|
||||
"command": ".eq",
|
||||
"arguments": "",
|
||||
"description": "English Question"
|
||||
},
|
||||
{
|
||||
"command": ".RWP",
|
||||
"arguments": "",
|
||||
"description": "Random Wikipedia[IT] page"
|
||||
},
|
||||
{
|
||||
"command": ".NLG",
|
||||
"arguments": "{opzionale: numero del record, jn assenza é casuale}",
|
||||
"description": "Propaganda persiana anti lgbt mal tradotta"
|
||||
},
|
||||
{
|
||||
"command": ".evc",
|
||||
"arguments": "{opzionale: numero di record, in assenza é casuale}",
|
||||
"description": "Sondaggio dal Canale \"tutti votano\" (\"Everybody Votes Channel\") della Wii"
|
||||
},
|
||||
{
|
||||
"command": ".CAH",
|
||||
"arguments": "{w o b, default b}",
|
||||
"description": "Cards Against Humanity classico"
|
||||
},
|
||||
{
|
||||
"command": ".lgbtShuffle",
|
||||
"arguments": "",
|
||||
"description": "Mischia LGBTQIA"
|
||||
},
|
||||
{
|
||||
"command": ".kq",
|
||||
"arguments": "",
|
||||
"description": "Citazione di Kanye West"
|
||||
},
|
||||
{
|
||||
"command": ".ez",
|
||||
"arguments": "{it o en, default it}",
|
||||
"description": "Ezechiele 25:17"
|
||||
},
|
||||
{
|
||||
"command": ".card",
|
||||
"arguments": "(citando un messaggo per quella di un altro utente, senza citare nulla per la propria)",
|
||||
"description": "Ottieni carta di identità del gruppo (badge)"
|
||||
},
|
||||
{
|
||||
"command": ".lookup",
|
||||
"arguments": "(citando un messaggo per quella di un altro utente, senza citare nulla per la propria) {opzionale: info}",
|
||||
"description": "Ottieni informazioni su un utente (se info é impostato, ottieni quella informazione)"
|
||||
},
|
||||
{
|
||||
"command": ".oracolo",
|
||||
"arguments": "{n} o citando un messaggio con un numero",
|
||||
"description": "Parole sibilline\nreference to \"After Egypt\""
|
||||
},
|
||||
{
|
||||
"command": ".rave",
|
||||
"arguments": "{testo} o citando un messaggio; se il parametro termina con \"|garfield\", \"|megalovania\" o \"|otamatone\", sono applicate variazioni di stile",
|
||||
"description": "Crab rave con il testo specificato"
|
||||
},
|
||||
{
|
||||
"command": ".marry",
|
||||
"arguments": "",
|
||||
"description": "Sposa due persone a caso. se si risponde a qualcuno nel messaggio che attiva il comando, questi verrà sposato con qualcuno a caso.\nSpoiler: usciranno un sacco di unioni civili poly."
|
||||
},
|
||||
{
|
||||
"command": ".nolgbt",
|
||||
"arguments": "",
|
||||
"description": "Il mirabile tomo persiano"
|
||||
},
|
||||
{
|
||||
"command": ".n",
|
||||
"arguments": "{numero} o citando un messaggio con un numero",
|
||||
"description": "Ottieni un fatto interessante riguardo ad un numero"
|
||||
},
|
||||
{
|
||||
"command": ".scp",
|
||||
"arguments": "{numero} o citando un messaggio con un numero",
|
||||
"description": "Ottieni un SCP"
|
||||
},
|
||||
{
|
||||
"command": ".lgbts",
|
||||
"arguments": "",
|
||||
"description": "Un po' di info per i pochi istruiti"
|
||||
},
|
||||
{
|
||||
"command": ".forum",
|
||||
"arguments": "",
|
||||
"description": "Sigla di Forum"
|
||||
},
|
||||
{
|
||||
"command": ".king",
|
||||
"arguments": "",
|
||||
"description": "Il re lgbt corrente"
|
||||
},
|
||||
{
|
||||
"command": ".cry",
|
||||
"arguments": "",
|
||||
"description": "Fai piangere Mat"
|
||||
},
|
||||
{
|
||||
"command": ".usage",
|
||||
"arguments": "",
|
||||
"description": "Uso del bot"
|
||||
},
|
||||
{
|
||||
"command": ".anon",
|
||||
"arguments": "",
|
||||
"description": "Ottieni i dettagli di un falso utente generati con un rimescolamento casuale di quelli dei veri utenti"
|
||||
},
|
||||
{
|
||||
"command": ".joke",
|
||||
"arguments": "",
|
||||
"description": "A salty joke"
|
||||
},
|
||||
{
|
||||
"command": ".no",
|
||||
"arguments": "",
|
||||
"description": "Ding Dong..."
|
||||
},
|
||||
{
|
||||
"command": ".i",
|
||||
"arguments": "",
|
||||
"description": "Info brevi sul bot"
|
||||
},
|
||||
{
|
||||
"command": ".ii",
|
||||
"arguments": "{testo su più linee o messaggio citato}",
|
||||
"description": "sostituisci *s* o *p* con le desinenze dell'italiano inclusivo"
|
||||
},
|
||||
{
|
||||
"command": ".asuna",
|
||||
"arguments": "",
|
||||
"description": "Se Asuna (@AsunaYuukiSAOBot ) è presente sul gruppo la chiamerà, alias di /asuna@AsunaYuukiSAOBot\nNote:"
|
||||
}
|
||||
]
|
||||
}
|
42
src/help.php
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Help</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, can-resize=no">
|
||||
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
|
||||
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
|
||||
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div data-role="page" id="main" class="ui-content">
|
||||
<div data-role="header" data-position="fixed">
|
||||
<h1 style="font-size:40px;" class="brandFont">Help</h1>
|
||||
</div>
|
||||
|
||||
<ul data-role="listview" data-filter="true" data-filter-placeholder="Search fruits..." data-inset="true">
|
||||
<?php
|
||||
$a=json_decode(file_get_contents("help.json"),true);
|
||||
foreach($a["commands"]as $e){
|
||||
$tt= "<li>".$e["command"];
|
||||
if(strlen($e["arguments"])>0){
|
||||
$tt.="<hr />".str_replace("\n","<br />",htmlentities($e["arguments"]));
|
||||
}
|
||||
if(strlen($e["description"])>0){
|
||||
$tt.="<hr />".str_replace("\n","<br />",htmlentities($e["description"]));
|
||||
}
|
||||
echo $tt;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
||||
|
||||
</html>
|
531
src/ignorance/data/channel/css/style.css
Normal file
@ -0,0 +1,531 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font: 12px/18px 'Open Sans',"Lucida Grande","Lucida Sans Unicode",Arial,Helvetica,Verdana,sans-serif;
|
||||
}
|
||||
strong {
|
||||
font-weight: 700;
|
||||
}
|
||||
code, kbd, pre, samp {
|
||||
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
|
||||
}
|
||||
code {
|
||||
padding: 2px 4px;
|
||||
font-size: 90%;
|
||||
color: #c7254e;
|
||||
background-color: #f9f2f4;
|
||||
border-radius: 4px;
|
||||
}
|
||||
pre {
|
||||
display: block;
|
||||
margin: 0;
|
||||
line-height: 1.42857143;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
color: #333;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 4px;
|
||||
overflow: auto;
|
||||
padding: 3px;
|
||||
border: 1px solid #eee;
|
||||
max-height: none;
|
||||
font-size: inherit;
|
||||
}
|
||||
.clearfix:after {
|
||||
content: " ";
|
||||
visibility: hidden;
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
}
|
||||
.pull_left {
|
||||
float: left;
|
||||
}
|
||||
.pull_right {
|
||||
float: right;
|
||||
}
|
||||
.page_wrap {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
.page_wrap a {
|
||||
color: #168acd;
|
||||
text-decoration: none;
|
||||
}
|
||||
.page_wrap a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.page_header {
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
background-color: #ffffff;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #e3e6e8;
|
||||
}
|
||||
.page_header .content {
|
||||
width: 480px;
|
||||
margin: 0 auto;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
.page_header a.content {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 24px 21px;
|
||||
background-size: 24px 24px;
|
||||
}
|
||||
.bold {
|
||||
color: #212121;
|
||||
font-weight: 700;
|
||||
}
|
||||
.details {
|
||||
color: #70777b;
|
||||
}
|
||||
.page_header .content .text {
|
||||
padding: 24px 24px 22px 24px;
|
||||
font-size: 22px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.page_header a.content .text {
|
||||
padding: 24px 24px 22px 82px;
|
||||
}
|
||||
.page_body {
|
||||
padding-top: 64px;
|
||||
width: 480px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.page_about {
|
||||
padding: 24px 24px;
|
||||
}
|
||||
.with_divider {
|
||||
border-top: 1px solid #e3e6e8;
|
||||
}
|
||||
.userpic_link {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
.userpic_link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.userpic {
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.userpic .initials {
|
||||
display: block;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
user-select: none;
|
||||
}
|
||||
.color_red,
|
||||
.userpic1,
|
||||
.media_call .fill,
|
||||
.media_file .fill,
|
||||
.media_live_location .fill {
|
||||
background-color: #ff5555;
|
||||
}
|
||||
.color_green,
|
||||
.userpic2,
|
||||
.media_call.success .fill,
|
||||
.media_photo .fill {
|
||||
background-color: #64bf47;
|
||||
}
|
||||
.color_yellow,
|
||||
.userpic3,
|
||||
.media_venue .fill {
|
||||
background-color: #ffab00;
|
||||
}
|
||||
.color_blue,
|
||||
.userpic4,
|
||||
.media_audio_file .fill,
|
||||
.media_voice_message .fill {
|
||||
background-color: #4f9cd9;
|
||||
}
|
||||
.color_purple,
|
||||
.userpic5,
|
||||
.media_game .fill {
|
||||
background-color: #9884e8;
|
||||
}
|
||||
.color_pink,
|
||||
.userpic6,
|
||||
.media_invoice .fill {
|
||||
background-color: #e671a5;
|
||||
}
|
||||
.color_sea,
|
||||
.userpic7,
|
||||
.media_location .fill,
|
||||
.media_video .fill {
|
||||
background-color: #47bcd1;
|
||||
}
|
||||
.color_orange,
|
||||
.userpic8,
|
||||
.media_contact .fill {
|
||||
background-color: #ff8c44;
|
||||
}
|
||||
.personal_info {
|
||||
padding: 24px;
|
||||
}
|
||||
.personal_info .userpic .initials {
|
||||
font-size: 30px;
|
||||
}
|
||||
.personal_info .rows {
|
||||
float: left;
|
||||
padding-right: 24px;
|
||||
}
|
||||
.personal_info .names {
|
||||
width: 164px;
|
||||
}
|
||||
.personal_info .info {
|
||||
width: 124px;
|
||||
}
|
||||
.personal_info .bio {
|
||||
width: 400px;
|
||||
}
|
||||
.personal_info .row {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
a.block_link {
|
||||
display: block;
|
||||
text-decoration: none !important;
|
||||
border-radius: 4px;
|
||||
}
|
||||
a.block_link:hover {
|
||||
text-decoration: none !important;
|
||||
background-color: #f5f7f8;
|
||||
}
|
||||
.sections {
|
||||
padding: 11px 0;
|
||||
}
|
||||
.section {
|
||||
height: 48px;
|
||||
background-position: 24px 12px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 24px 24px;
|
||||
}
|
||||
.section .counter {
|
||||
float: right;
|
||||
padding: 14px 24px 0;
|
||||
font-size: 15px;
|
||||
}
|
||||
.section .label {
|
||||
padding: 15px 0 0 82px;
|
||||
font-size: 15px;
|
||||
}
|
||||
.list_page .page_about {
|
||||
padding: 16px 24px 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
.list_page .entry_list {
|
||||
padding: 16px 0;
|
||||
}
|
||||
.list_page .entry {
|
||||
padding: 10px 16px;
|
||||
}
|
||||
.list_page .entry .userpic .initials {
|
||||
font-size: 18px;
|
||||
}
|
||||
.list_page .entry .body {
|
||||
margin-left: 66px;
|
||||
}
|
||||
.list_page .entry .name {
|
||||
padding: 4px 0 2px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.list_page .entry .subname {
|
||||
padding-top: 4px;
|
||||
}
|
||||
.list_page .entry .details_entry {
|
||||
padding-top: 4px;
|
||||
}
|
||||
.list_page .entry .info {
|
||||
font-size: 11px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.history {
|
||||
padding: 16px 0;
|
||||
}
|
||||
.message {
|
||||
margin: 0 -10px;
|
||||
transition: background-color 2.0s ease;
|
||||
}
|
||||
div.selected {
|
||||
background-color: rgba(242,246,250,255);
|
||||
transition: background-color 0.5s ease;
|
||||
}
|
||||
.service {
|
||||
padding: 10px 24px;
|
||||
}
|
||||
.service .body {
|
||||
text-align: center;
|
||||
}
|
||||
.service .userpic_wrap {
|
||||
padding-top: 10px;
|
||||
}
|
||||
.service .userpic {
|
||||
margin: 0 auto;
|
||||
}
|
||||
.service .userpic .initials {
|
||||
font-size: 24px;
|
||||
}
|
||||
.message .userpic .initials {
|
||||
font-size: 16px;
|
||||
}
|
||||
.default {
|
||||
padding: 10px;
|
||||
}
|
||||
.default.joined {
|
||||
margin-top: -10px;
|
||||
}
|
||||
.default .from_name {
|
||||
color: #3892db;
|
||||
font-weight: 700;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.default .from_name .details {
|
||||
font-weight: normal;
|
||||
}
|
||||
.default .body {
|
||||
margin-left: 60px;
|
||||
}
|
||||
.default .text {
|
||||
word-wrap: break-word;
|
||||
line-height: 150%;
|
||||
}
|
||||
.default .reply_to,
|
||||
.default .media_wrap {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.default .media {
|
||||
margin: 0 -10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
.default .media .fill,
|
||||
.default .media .thumb {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.default .media .fill {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 12px 12px;
|
||||
background-size: 24px 24px;
|
||||
}
|
||||
.default .media .title,
|
||||
.default .media_poll .question {
|
||||
padding-top: 4px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.default .media .description {
|
||||
color: #000000;
|
||||
padding-top: 4px;
|
||||
font-size: 13px;
|
||||
}
|
||||
.default .media .status {
|
||||
padding-top: 4px;
|
||||
font-size: 13px;
|
||||
}
|
||||
.default .video_file_wrap,
|
||||
.default .animated_wrap {
|
||||
position: relative;
|
||||
}
|
||||
.default .video_file,
|
||||
.default .animated,
|
||||
.default .photo,
|
||||
.default .sticker {
|
||||
display: block;
|
||||
}
|
||||
.video_duration {
|
||||
background: rgba(0, 0, 0, .4);
|
||||
padding: 0px 5px;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
border-radius: 2px;
|
||||
right: 3px;
|
||||
bottom: 3px;
|
||||
color: #ffffff;
|
||||
font-size: 11px;
|
||||
}
|
||||
.video_play_bg {
|
||||
background: rgba(0, 0, 0, .4);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 0;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin: -20px auto 0 -20px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
pointer-events: none;
|
||||
}
|
||||
.video_play {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
margin-top: -9px;
|
||||
z-index: 1;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 9px 0 9px 14px;
|
||||
border-color: transparent transparent transparent #fff;
|
||||
}
|
||||
.gif_play {
|
||||
font-weight: 700;
|
||||
color: #FFF;
|
||||
display: block;
|
||||
line-height: 40px;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
}
|
||||
.pagination {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.toast_container {
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
opacity: 0;
|
||||
transition: opacity 3.0s ease;
|
||||
}
|
||||
.toast_body {
|
||||
margin: 0 -50%;
|
||||
float: left;
|
||||
border-radius: 15px;
|
||||
padding: 10px 20px;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
color: #ffffff;
|
||||
}
|
||||
div.toast_shown {
|
||||
opacity: 1;
|
||||
transition: opacity 0.4s ease;
|
||||
}
|
||||
|
||||
.section.calls {
|
||||
background-image: url(../images/section_calls.png);
|
||||
}
|
||||
.section.chats {
|
||||
background-image: url(../images/section_chats.png);
|
||||
}
|
||||
.section.contacts {
|
||||
background-image: url(../images/section_contacts.png);
|
||||
}
|
||||
.section.frequent {
|
||||
background-image: url(../images/section_frequent.png);
|
||||
}
|
||||
.section.photos {
|
||||
background-image: url(../images/section_photos.png);
|
||||
}
|
||||
.section.sessions {
|
||||
background-image: url(../images/section_sessions.png);
|
||||
}
|
||||
.section.web {
|
||||
background-image: url(../images/section_web.png);
|
||||
}
|
||||
.section.other {
|
||||
background-image: url(../images/section_other.png)
|
||||
}
|
||||
.page_header a.content {
|
||||
background-image: url(../images/back.png);
|
||||
}
|
||||
.media_call .fill {
|
||||
background-image: url(../images/media_call.png)
|
||||
}
|
||||
.media_contact .fill {
|
||||
background-image: url(../images/media_contact.png)
|
||||
}
|
||||
.media_file .fill {
|
||||
background-image: url(../images/media_file.png)
|
||||
}
|
||||
.media_game .fill {
|
||||
background-image: url(../images/media_game.png)
|
||||
}
|
||||
.media_live_location .fill,
|
||||
.media_location .fill,
|
||||
.media_venue .fill {
|
||||
background-image: url(../images/media_location.png)
|
||||
}
|
||||
.media_audio_file .fill {
|
||||
background-image: url(../images/media_music.png)
|
||||
}
|
||||
.media_invoice .fill {
|
||||
background-image: url(../images/media_shop.png)
|
||||
}
|
||||
.media_voice_message .fill {
|
||||
background-image: url(../images/media_voice.png)
|
||||
}
|
||||
.media_photo .fill {
|
||||
background-image: url(../images/media_photo.png)
|
||||
}
|
||||
.media_video .fill {
|
||||
background-image: url(../images/media_video.png)
|
||||
}
|
||||
|
||||
@media only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
||||
.section.calls {
|
||||
background-image: url(../images/section_calls@2x.png);
|
||||
}
|
||||
.section.chats {
|
||||
background-image: url(../images/section_chats@2x.png);
|
||||
}
|
||||
.section.contacts {
|
||||
background-image: url(../images/section_contacts@2x.png);
|
||||
}
|
||||
.section.frequent {
|
||||
background-image: url(../images/section_frequent@2x.png);
|
||||
}
|
||||
.section.photos {
|
||||
background-image: url(../images/section_photos@2x.png);
|
||||
}
|
||||
.section.sessions {
|
||||
background-image: url(../images/section_sessions@2x.png);
|
||||
}
|
||||
.section.web {
|
||||
background-image: url(../images/section_web@2x.png);
|
||||
}
|
||||
.section.other {
|
||||
background-image: url(../images/section_other@2x.png);
|
||||
}
|
||||
.page_header a.content {
|
||||
background-image: url(../images/back@2x.png);
|
||||
}
|
||||
.media_call .fill {
|
||||
background-image: url(../images/media_call@2x.png)
|
||||
}
|
||||
.media_contact .fill {
|
||||
background-image: url(../images/media_contact@2x.png)
|
||||
}
|
||||
.media_file .fill {
|
||||
background-image: url(../images/media_file@2x.png)
|
||||
}
|
||||
.media_game .fill {
|
||||
background-image: url(../images/media_game@2x.png)
|
||||
}
|
||||
.media_live_location .fill,
|
||||
.media_location .fill,
|
||||
.media_venue .fill {
|
||||
background-image: url(../images/media_location@2x.png)
|
||||
}
|
||||
.media_audio_file .fill {
|
||||
background-image: url(../images/media_music@2x.png)
|
||||
}
|
||||
.media_invoice .fill {
|
||||
background-image: url(../images/media_shop@2x.png)
|
||||
}
|
||||
.media_voice_message .fill {
|
||||
background-image: url(../images/media_voice@2x.png)
|
||||
}
|
||||
.media_photo .fill {
|
||||
background-image: url(../images/media_photo@2x.png)
|
||||
}
|
||||
.media_video .fill {
|
||||
background-image: url(../images/media_video@2x.png)
|
||||
}
|
||||
}
|
BIN
src/ignorance/data/channel/images/back.png
Normal file
After Width: | Height: | Size: 312 B |
BIN
src/ignorance/data/channel/images/back@2x.png
Normal file
After Width: | Height: | Size: 518 B |
BIN
src/ignorance/data/channel/images/media_call.png
Normal file
After Width: | Height: | Size: 417 B |
BIN
src/ignorance/data/channel/images/media_call@2x.png
Normal file
After Width: | Height: | Size: 815 B |
BIN
src/ignorance/data/channel/images/media_contact.png
Normal file
After Width: | Height: | Size: 323 B |
BIN
src/ignorance/data/channel/images/media_contact@2x.png
Normal file
After Width: | Height: | Size: 600 B |
BIN
src/ignorance/data/channel/images/media_file.png
Normal file
After Width: | Height: | Size: 236 B |
BIN
src/ignorance/data/channel/images/media_file@2x.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
src/ignorance/data/channel/images/media_game.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
src/ignorance/data/channel/images/media_game@2x.png
Normal file
After Width: | Height: | Size: 510 B |
BIN
src/ignorance/data/channel/images/media_location.png
Normal file
After Width: | Height: | Size: 480 B |
BIN
src/ignorance/data/channel/images/media_location@2x.png
Normal file
After Width: | Height: | Size: 991 B |
BIN
src/ignorance/data/channel/images/media_music.png
Normal file
After Width: | Height: | Size: 275 B |
BIN
src/ignorance/data/channel/images/media_music@2x.png
Normal file
After Width: | Height: | Size: 464 B |
BIN
src/ignorance/data/channel/images/media_photo.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
src/ignorance/data/channel/images/media_photo@2x.png
Normal file
After Width: | Height: | Size: 458 B |
BIN
src/ignorance/data/channel/images/media_shop.png
Normal file
After Width: | Height: | Size: 377 B |
BIN
src/ignorance/data/channel/images/media_shop@2x.png
Normal file
After Width: | Height: | Size: 790 B |
BIN
src/ignorance/data/channel/images/media_video.png
Normal file
After Width: | Height: | Size: 235 B |
BIN
src/ignorance/data/channel/images/media_video@2x.png
Normal file
After Width: | Height: | Size: 411 B |
BIN
src/ignorance/data/channel/images/media_voice.png
Normal file
After Width: | Height: | Size: 328 B |
BIN
src/ignorance/data/channel/images/media_voice@2x.png
Normal file
After Width: | Height: | Size: 660 B |
BIN
src/ignorance/data/channel/images/section_calls.png
Normal file
After Width: | Height: | Size: 656 B |
BIN
src/ignorance/data/channel/images/section_calls@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/ignorance/data/channel/images/section_chats.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
src/ignorance/data/channel/images/section_chats@2x.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
src/ignorance/data/channel/images/section_contacts.png
Normal file
After Width: | Height: | Size: 508 B |
BIN
src/ignorance/data/channel/images/section_contacts@2x.png
Normal file
After Width: | Height: | Size: 1023 B |
BIN
src/ignorance/data/channel/images/section_frequent.png
Normal file
After Width: | Height: | Size: 771 B |
BIN
src/ignorance/data/channel/images/section_frequent@2x.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/ignorance/data/channel/images/section_other.png
Normal file
After Width: | Height: | Size: 155 B |
BIN
src/ignorance/data/channel/images/section_other@2x.png
Normal file
After Width: | Height: | Size: 269 B |
BIN
src/ignorance/data/channel/images/section_photos.png
Normal file
After Width: | Height: | Size: 415 B |
BIN
src/ignorance/data/channel/images/section_photos@2x.png
Normal file
After Width: | Height: | Size: 750 B |
BIN
src/ignorance/data/channel/images/section_sessions.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
src/ignorance/data/channel/images/section_sessions@2x.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
src/ignorance/data/channel/images/section_web.png
Normal file
After Width: | Height: | Size: 266 B |
BIN
src/ignorance/data/channel/images/section_web@2x.png
Normal file
After Width: | Height: | Size: 447 B |
189
src/ignorance/data/channel/js/script.js
Normal file
@ -0,0 +1,189 @@
|
||||
"use strict";
|
||||
|
||||
window.AllowBackFromHistory = false;
|
||||
function CheckLocation() {
|
||||
var start = "#go_to_message";
|
||||
var hash = location.hash;
|
||||
if (hash.substr(0, start.length) == start) {
|
||||
var messageId = parseInt(hash.substr(start.length));
|
||||
if (messageId) {
|
||||
GoToMessage(messageId);
|
||||
}
|
||||
} else if (hash == "#allow_back") {
|
||||
window.AllowBackFromHistory = true;
|
||||
}
|
||||
}
|
||||
|
||||
function ShowToast(text) {
|
||||
var container = document.createElement("div");
|
||||
container.className = "toast_container";
|
||||
var inner = container.appendChild(document.createElement("div"));
|
||||
inner.className = "toast_body";
|
||||
inner.appendChild(document.createTextNode(text));
|
||||
var appended = document.body.appendChild(container);
|
||||
setTimeout(function () {
|
||||
AddClass(appended, "toast_shown");
|
||||
setTimeout(function () {
|
||||
RemoveClass(appended, "toast_shown");
|
||||
setTimeout(function () {
|
||||
document.body.removeChild(appended);
|
||||
}, 3000);
|
||||
}, 3000);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
function ShowHashtag(tag) {
|
||||
ShowToast("This is a hashtag '#" + tag + "' link.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowCashtag(tag) {
|
||||
ShowToast("This is a cashtag '$" + tag + "' link.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowBotCommand(command) {
|
||||
ShowToast("This is a bot command '/" + command + "' link.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowMentionName() {
|
||||
ShowToast("This is a link to a user mentioned by name.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function AddClass(element, name) {
|
||||
var current = element.className;
|
||||
var expression = new RegExp('(^|\\s)' + name + '(\\s|$)', 'g');
|
||||
if (expression.test(current)) {
|
||||
return;
|
||||
}
|
||||
element.className = current + ' ' + name;
|
||||
}
|
||||
|
||||
function RemoveClass(element, name) {
|
||||
var current = element.className;
|
||||
var expression = new RegExp('(^|\\s)' + name + '(\\s|$)', '');
|
||||
var match = expression.exec(current);
|
||||
while ((match = expression.exec(current)) != null) {
|
||||
if (match[1].length > 0 && match[2].length > 0) {
|
||||
current = current.substr(0, match.index + match[1].length)
|
||||
+ current.substr(match.index + match[0].length);
|
||||
} else {
|
||||
current = current.substr(0, match.index)
|
||||
+ current.substr(match.index + match[0].length);
|
||||
}
|
||||
}
|
||||
element.className = current;
|
||||
}
|
||||
|
||||
function EaseOutQuad(t) {
|
||||
return t * t;
|
||||
}
|
||||
|
||||
function EaseInOutQuad(t) {
|
||||
return (t < 0.5) ? (2 * t * t) : ((4 - 2 * t) * t - 1);
|
||||
}
|
||||
|
||||
function ScrollHeight() {
|
||||
if ("innerHeight" in window) {
|
||||
return window.innerHeight;
|
||||
} else if (document.documentElement) {
|
||||
return document.documentElement.clientHeight;
|
||||
}
|
||||
return document.body.clientHeight;
|
||||
}
|
||||
|
||||
function ScrollTo(top, callback) {
|
||||
var html = document.documentElement;
|
||||
var current = html.scrollTop;
|
||||
var delta = top - current;
|
||||
var finish = function () {
|
||||
html.scrollTop = top;
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
if (!window.performance.now || delta == 0) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
var transition = EaseOutQuad;
|
||||
var max = 300;
|
||||
if (delta < -max) {
|
||||
current = top + max;
|
||||
delta = -max;
|
||||
} else if (delta > max) {
|
||||
current = top - max;
|
||||
delta = max;
|
||||
} else {
|
||||
transition = EaseInOutQuad;
|
||||
}
|
||||
var duration = 150;
|
||||
var interval = 7;
|
||||
var time = window.performance.now();
|
||||
var animate = function () {
|
||||
var now = window.performance.now();
|
||||
if (now >= time + duration) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
var dt = (now - time) / duration;
|
||||
html.scrollTop = Math.round(current + delta * transition(dt));
|
||||
setTimeout(animate, interval);
|
||||
};
|
||||
setTimeout(animate, interval);
|
||||
}
|
||||
|
||||
function ScrollToElement(element, callback) {
|
||||
var header = document.getElementsByClassName("page_header")[0];
|
||||
var headerHeight = header.offsetHeight;
|
||||
var html = document.documentElement;
|
||||
var scrollHeight = ScrollHeight();
|
||||
var available = scrollHeight - headerHeight;
|
||||
var padding = 10;
|
||||
var top = element.offsetTop;
|
||||
var height = element.offsetHeight;
|
||||
var desired = top
|
||||
- Math.max((available - height) / 2, padding)
|
||||
- headerHeight;
|
||||
var scrollTopMax = html.offsetHeight - scrollHeight;
|
||||
ScrollTo(Math.min(desired, scrollTopMax), callback);
|
||||
}
|
||||
|
||||
function GoToMessage(messageId) {
|
||||
var element = document.getElementById("message" + messageId);
|
||||
if (element) {
|
||||
var hash = "#go_to_message" + messageId;
|
||||
if (location.hash != hash) {
|
||||
location.hash = hash;
|
||||
}
|
||||
ScrollToElement(element, function () {
|
||||
AddClass(element, "selected");
|
||||
setTimeout(function () {
|
||||
RemoveClass(element, "selected");
|
||||
}, 1000);
|
||||
});
|
||||
} else {
|
||||
ShowToast("This message was not exported. Maybe it was deleted.");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function GoBack(anchor) {
|
||||
if (!window.AllowBackFromHistory) {
|
||||
return true;
|
||||
}
|
||||
history.back();
|
||||
if (!anchor || !anchor.getAttribute) {
|
||||
return true;
|
||||
}
|
||||
var destination = anchor.getAttribute("href");
|
||||
if (!destination) {
|
||||
return true;
|
||||
}
|
||||
setTimeout(function () {
|
||||
location.href = destination;
|
||||
}, 100);
|
||||
return false;
|
||||
}
|