2020-12-26 01:42:23 +08:00
<? php
2021-01-13 19:32:26 +08:00
require_once ( "../include/bittorrent.php" );
2020-12-26 01:42:23 +08:00
dbconn ();
require_once ( get_langfile_path ());
loggedinorreturn ();
function bark ( $msg ) {
global $lang_takeedit ;
genbark ( $msg , $lang_takeedit [ 'std_edit_failed' ]);
}
if ( ! mkglobal ( "id:name:descr:type" )){
global $lang_takeedit ;
bark ( $lang_takeedit [ 'std_missing_form_data' ]);
}
2021-01-06 01:31:21 +08:00
$id = intval ( $id ?? 0 );
2020-12-26 01:42:23 +08:00
if ( ! $id )
die ();
$res = sql_query ( "SELECT category, owner, filename, save_as, anonymous, picktype, picktime, added FROM torrents WHERE id = " . mysql_real_escape_string ( $id ));
$row = mysql_fetch_array ( $res );
$torrentAddedTimeString = $row [ 'added' ];
if ( ! $row )
die ();
if ( $CURUSER [ "id" ] != $row [ "owner" ] && get_user_class () < $torrentmanage_class )
bark ( $lang_takeedit [ 'std_not_owner' ]);
$oldcatmode = get_single_value ( "categories" , "mode" , "WHERE id=" . sqlesc ( $row [ 'category' ]));
$updateset = array ();
//$fname = $row["filename"];
//preg_match('/^(.+)\.torrent$/si', $fname, $matches);
//$shortfname = $matches[1];
//$dname = $row["save_as"];
2020-12-29 21:49:37 +08:00
$url = parse_imdb_id ( $_POST [ 'url' ] ?? '' );
2021-01-18 00:41:35 +08:00
/**
* add PT-Gen
* @since 1.6
*/
if ( ! empty ( $_POST [ 'pt_gen' ])) {
//use PT-Gen imdb for url
$postPtGen = $_POST [ 'pt_gen' ];
$ptGenImdbLink = $postPtGen [ \Nexus\PTGen\PTGen :: SITE_IMDB ][ 'link' ] ?? '' ;
if ( empty ( $url ) && ! empty ( $ptGenImdbLink )) {
$ptGen = new \Nexus\PTGen\PTGen ();
$ptGenImdbInfo = $ptGen -> parse ( $ptGenImdbLink );
$url = str_replace ( 'tt' , '' , $ptGenImdbInfo [ 'id' ]);
}
$updateset [] = "pt_gen = " . sqlesc ( json_encode ( $postPtGen ));
} else {
$updateset [] = "pt_gen = ''" ;
}
2020-12-26 01:42:23 +08:00
2021-03-03 00:23:08 +08:00
$updateset [] = "tags = " . array_sum ( $_POST [ 'tags' ] ?? []);
2021-02-20 18:22:19 +08:00
2020-12-26 01:42:23 +08:00
if ( $enablenfo_main == 'yes' ){
$nfoaction = $_POST [ 'nfoaction' ];
if ( $nfoaction == "update" )
{
$nfofile = $_FILES [ 'nfo' ];
if ( ! $nfofile ) die ( "No data " . var_dump ( $_FILES ));
if ( $nfofile [ 'size' ] > 65535 )
bark ( $lang_takeedit [ 'std_nfo_too_big' ]);
$nfofilename = $nfofile [ 'tmp_name' ];
if ( @ is_uploaded_file ( $nfofilename ) && @ filesize ( $nfofilename ) > 0 )
$updateset [] = "nfo = " . sqlesc ( str_replace ( " \x0d\x0d\x0a " , " \x0d\x0a " , file_get_contents ( $nfofilename )));
$Cache -> delete_value ( 'nfo_block_torrent_id_' . $id );
}
elseif ( $nfoaction == "remove" ){
$updateset [] = "nfo = ''" ;
$Cache -> delete_value ( 'nfo_block_torrent_id_' . $id );
}
}
2021-01-06 01:31:21 +08:00
$catid = intval ( $type ?? 0 );
2020-12-26 01:42:23 +08:00
if ( ! is_valid_id ( $catid ))
bark ( $lang_takeedit [ 'std_missing_form_data' ]);
if ( ! $name || ! $descr )
bark ( $lang_takeedit [ 'std_missing_form_data' ]);
$newcatmode = get_single_value ( "categories" , "mode" , "WHERE id=" . sqlesc ( $catid ));
if ( $enablespecial == 'yes' && get_user_class () >= $movetorrent_class )
$allowmove = true ; //enable moving torrent to other section
else $allowmove = false ;
if ( $oldcatmode != $newcatmode && ! $allowmove )
bark ( $lang_takeedit [ 'std_cannot_move_torrent' ]);
2020-12-29 21:49:37 +08:00
$updateset [] = "anonymous = '" . ( ! empty ( $_POST [ "anonymous" ]) ? "yes" : "no" ) . "'" ;
2020-12-26 01:42:23 +08:00
$updateset [] = "name = " . sqlesc ( $name );
$updateset [] = "descr = " . sqlesc ( $descr );
$updateset [] = "url = " . sqlesc ( $url );
$updateset [] = "small_descr = " . sqlesc ( $_POST [ "small_descr" ]);
//$updateset[] = "ori_descr = " . sqlesc($descr);
$updateset [] = "category = " . sqlesc ( $catid );
2021-01-06 01:31:21 +08:00
$updateset [] = "source = " . sqlesc ( intval ( $_POST [ "source_sel" ] ?? 0 ));
$updateset [] = "medium = " . sqlesc ( intval ( $_POST [ "medium_sel" ] ?? 0 ));
$updateset [] = "codec = " . sqlesc ( intval ( $_POST [ "codec_sel" ] ?? 0 ));
$updateset [] = "standard = " . sqlesc ( intval ( $_POST [ "standard_sel" ] ?? 0 ));
$updateset [] = "processing = " . sqlesc ( intval ( $_POST [ "processing_sel" ] ?? 0 ));
$updateset [] = "team = " . sqlesc ( intval ( $_POST [ "team_sel" ] ?? 0 ));
$updateset [] = "audiocodec = " . sqlesc ( intval ( $_POST [ "audiocodec_sel" ] ?? 0 ));
2020-12-26 01:42:23 +08:00
if ( get_user_class () >= $torrentmanage_class ) {
2020-12-29 21:49:37 +08:00
if ( ! empty ( $_POST [ "banned" ])) {
2020-12-26 01:42:23 +08:00
$updateset [] = "banned = 'yes'" ;
$_POST [ "visible" ] = 0 ;
}
else
$updateset [] = "banned = 'no'" ;
}
2020-12-29 21:49:37 +08:00
$updateset [] = "visible = '" . ( ! empty ( $_POST [ "visible" ]) ? "yes" : "no" ) . "'" ;
2020-12-26 01:42:23 +08:00
if ( get_user_class () >= $torrentonpromotion_class )
{
if ( ! isset ( $_POST [ "sel_spstate" ]) || $_POST [ "sel_spstate" ] == 1 )
$updateset [] = "sp_state = 1" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_spstate" ] ?? 0 ) == 2 )
2020-12-26 01:42:23 +08:00
$updateset [] = "sp_state = 2" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_spstate" ] ?? 0 ) == 3 )
2020-12-26 01:42:23 +08:00
$updateset [] = "sp_state = 3" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_spstate" ] ?? 0 ) == 4 )
2020-12-26 01:42:23 +08:00
$updateset [] = "sp_state = 4" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_spstate" ] ?? 0 ) == 5 )
2020-12-26 01:42:23 +08:00
$updateset [] = "sp_state = 5" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_spstate" ] ?? 0 ) == 6 )
2020-12-26 01:42:23 +08:00
$updateset [] = "sp_state = 6" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_spstate" ] ?? 0 ) == 7 )
2020-12-26 01:42:23 +08:00
$updateset [] = "sp_state = 7" ;
//promotion expiration type
if ( ! isset ( $_POST [ "promotion_time_type" ]) || $_POST [ "promotion_time_type" ] == 0 ) {
$updateset [] = "promotion_time_type = 0" ;
$updateset [] = "promotion_until = '0000-00-00 00:00:00'" ;
} elseif ( $_POST [ "promotion_time_type" ] == 1 ) {
$updateset [] = "promotion_time_type = 1" ;
$updateset [] = "promotion_until = '0000-00-00 00:00:00'" ;
} elseif ( $_POST [ "promotion_time_type" ] == 2 ) {
if ( $_POST [ "promotionuntil" ] && strtotime ( $torrentAddedTimeString ) <= strtotime ( $_POST [ "promotionuntil" ])) {
$updateset [] = "promotion_time_type = 2" ;
$updateset [] = "promotion_until = " . sqlesc ( $_POST [ "promotionuntil" ]);
} else {
$updateset [] = "promotion_time_type = 0" ;
$updateset [] = "promotion_until = '0000-00-00 00:00:00'" ;
}
}
}
if ( get_user_class () >= $torrentsticky_class )
{
2021-01-06 01:39:45 +08:00
if ( intval ( $_POST [ "sel_posstate" ] ?? 0 ) == 0 )
2020-12-26 01:42:23 +08:00
$updateset [] = "pos_state = 'normal'" ;
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_posstate" ] ?? 0 ) == 1 )
2020-12-26 01:42:23 +08:00
$updateset [] = "pos_state = 'sticky'" ;
}
$pick_info = "" ;
2020-12-29 21:49:37 +08:00
$place_info = "" ;
2020-12-26 01:42:23 +08:00
if ( get_user_class () >= $torrentmanage_class && $CURUSER [ 'picker' ] == 'yes' )
{
2021-01-06 01:39:45 +08:00
if ( intval ( $_POST [ "sel_recmovie" ] ?? 0 ) == 0 )
2020-12-26 01:42:23 +08:00
{
if ( $row [ "picktype" ] != 'normal' )
$pick_info = ", recomendation canceled!" ;
$updateset [] = "picktype = 'normal'" ;
$updateset [] = "picktime = '0000-00-00 00:00:00'" ;
}
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_recmovie" ] ?? 0 ) == 1 )
2020-12-26 01:42:23 +08:00
{
if ( $row [ "picktype" ] != 'hot' )
$pick_info = ", recommend as hot movie" ;
$updateset [] = "picktype = 'hot'" ;
$updateset [] = "picktime = " . sqlesc ( date ( "Y-m-d H:i:s" ));
}
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_recmovie" ] ?? 0 ) == 2 )
2020-12-26 01:42:23 +08:00
{
if ( $row [ "picktype" ] != 'classic' )
$pick_info = ", recommend as classic movie" ;
$updateset [] = "picktype = 'classic'" ;
$updateset [] = "picktime = " . sqlesc ( date ( "Y-m-d H:i:s" ));
}
2021-01-06 01:39:45 +08:00
elseif ( intval ( $_POST [ "sel_recmovie" ] ?? 0 ) == 3 )
2020-12-26 01:42:23 +08:00
{
if ( $row [ "picktype" ] != 'recommended' )
$pick_info = ", recommend as recommended movie" ;
$updateset [] = "picktype = 'recommended'" ;
$updateset [] = "picktime = " . sqlesc ( date ( "Y-m-d H:i:s" ));
}
}
2021-01-15 22:13:46 +08:00
2020-12-26 01:42:23 +08:00
sql_query ( "UPDATE torrents SET " . join ( "," , $updateset ) . " WHERE id = $id " ) or sqlerr ( __FILE__ , __LINE__ );
2021-03-04 02:27:39 +08:00
/**
* add custom fields
* @since v1.6
*/
if ( ! empty ( $_POST [ 'custom_fields' ])) {
\Nexus\Database\DB :: delete ( 'torrents_custom_field_values' , "torrent_id = $id " );
$now = date ( 'Y-m-d H:i:s' );
foreach ( $_POST [ 'custom_fields' ] as $customField => $customValue ) {
foreach (( array ) $customValue as $value ) {
$customData = [
'torrent_id' => $id ,
'custom_field_id' => $customField ,
'custom_field_value' => $value ,
'created_at' => $now ,
'updated_at' => $now ,
];
\Nexus\Database\DB :: insert ( 'torrents_custom_field_values' , $customData );
}
}
}
2020-12-26 01:42:23 +08:00
if ( $CURUSER [ "id" ] == $row [ "owner" ])
{
if ( $row [ "anonymous" ] == 'yes' )
{
write_log ( "Torrent $id ( $name ) was edited by Anonymous" . $pick_info . $place_info );
}
else
{
write_log ( "Torrent $id ( $name ) was edited by $CURUSER[username] " . $pick_info . $place_info );
}
}
else
{
write_log ( "Torrent $id ( $name ) was edited by $CURUSER[username] , Mod Edit" . $pick_info . $place_info );
}
$returl = "details.php?id= $id &edited=1" ;
if ( isset ( $_POST [ "returnto" ]))
$returl = $_POST [ "returnto" ];
header ( "Refresh: 0; url= $returl " );