Changeset 731 for trunk/Modules/Export


Ignore:
Timestamp:
Jan 8, 2014, 1:05:05 PM (11 years ago)
Author:
maron
Message:
  • Modify: Change store progress from file to Database
Location:
trunk/Modules/Export
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Export/CreateAddon.php

    r695 r731  
    121121      if($Column['AddonFileName'] != '') 
    122122      {
     123        $this->AddProgress(1);
    123124        if(!isset($CreatedFileListCount[$Column['AddonFileName']]))
    124125        $CreatedFileListCount[$Column['AddonFileName']] = 0;
  • trunk/Modules/Export/Export.php

    r729 r731  
    302302
    303303  function AddProgress($add = 2) {
    304     if (file_exists($this->TempDir.'progress')) { 
    305       $File = new FileStream();
    306       $File->OpenFile($this->TempDir.'progress');
    307       $Line = $File->ReadLine(); 
    308    
    309       $File = new FileStream();
    310       $File->CreateFile($this->TempDir.'progress');
    311       $Line+=$add;
    312       $File->WriteLine($Line);
    313     }
     304
     305    $DbResult = $this->System->Database->query('SELECT Progress FROM `ExportTask` WHERE `Export`='.$this->Id);
     306    $Task = $DbResult->fetch_assoc();
     307    $per = $Task['Progress']+$add;
     308    $this->System->Database->query('UPDATE `ExportTask` SET `Progress`='.$per.' WHERE `Export`='.$this->Id);
    314309  }
    315310
     
    411406          if($Progress != $OldProgress)
    412407          {
    413             if ($Group['Id'] == 13) $this->AddProgress(0.01);
     408            if (($Group['Id'] == 13) and ($Progress <> 100)) $this->AddProgress(0.01);
    414409            $Output .= $Progress."%\r";
    415410            echo($Output);
     
    436431    while($Group = $DbResult->fetch_assoc())
    437432    {
     433      $this->AddProgress(1);
    438434    //  $this->AddProgress();
    439435      $Output .= $Group['Name'].'... ';
  • trunk/Modules/Export/ExportOutput.php

    r729 r731  
    194194    $System->Database->query('UPDATE ExportTask SET TimeStart = NOW(), TimeFinish = NULL WHERE Export = '.$ExportId);
    195195    $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.');
    196     if (file_exists($Export->TempDir.'progress')) unlink($Export->TempDir.'progress');
    197196  }
    198197
     
    205204    $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$ExportId.', NOW())');
    206205    $this->System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
     206    $System->Database->query('UPDATE `ExportTask` SET `Progress`=0 WHERE `Export`='.$Export->Id);
    207207  } 
    208208 
     
    220220  } else {
    221221 
    222     $Line = 0;
    223     if (file_exists (dirname(__FILE__).'/../../'.$Export->TempDirRelative.'progress')) {
    224       $File = new FileStream();
    225       $File->OpenFile(dirname(__FILE__).'/../../'.$Export->TempDirRelative.'progress');
    226       $Line = $File->ReadLine(); 
    227     }
     222
     223    $DbResult = $System->Database->query('SELECT Progress FROM `ExportTask` WHERE `Export`='.$Export->Id);
     224    $Task = $DbResult->fetch_assoc();
     225
    228226        $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    229227                                 'setTimeout("parent.location.href=\''.$System->Link('/export/?Action=View&Tab=7&Auto&ExportId='.$Export->Id).'\'", 5000)'.
    230228                                                 '</script>';
    231     $Output .= ' <strong>Dokončeno procent: '.ProgressBar(300, $Line).'</strong>';
    232     if ($Line == 0) $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
     229    $Output .= ' <strong>Dokončeno procent: '.ProgressBar(300, $Task['Progress']).'</strong>';
     230    if ($Task['Progress'] == 0) $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
    233231  }
    234232  return($Output);
     
    248246    $System->Database->query('UPDATE ExportTask SET TimeStart = NOW(), TimeFinish = NULL WHERE Export = '.$ExportId);
    249247    $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.');
    250     if (file_exists($Export->TempDir.'progress')) unlink($Export->TempDir.'progress');
     248    $System->Database->query('UPDATE `ExportTask` SET `Progress`=0 WHERE `Export`='.$Export->Id);
    251249  }
    252250
     
    265263  if($ExportTask['TimeFinish'] > $ExportTask['TimeStart'])
    266264  {
    267    // unlink($Export->TempDirRelative.'progress');
    268265    $Output .= '<strong>Souhrný EXE balík: <a href="'.$System->Link('/'.$Export->TempDirRelative.'Instalace_CzechWoW_'.$Export->ClientVersion['Version'].'.exe').'">Instalace_CzechWoW_'.$Export->ClientVersion['Version'].'.exe</a></strong><br/>';
    269266
    270267  } else {
    271268   
    272     $Line = 0;
    273     if (file_exists (dirname(__FILE__).'/../../'.$Export->TempDirRelative.'progress')) {
    274       $File = new FileStream();
    275       $File->OpenFile(dirname(__FILE__).'/../../'.$Export->TempDirRelative.'progress');
    276       $Line = $File->ReadLine(); 
    277     }
     269    $DbResult = $System->Database->query('SELECT Progress FROM `ExportTask` WHERE `Export`='.$Export->Id);
     270    $Task = $DbResult->fetch_assoc();
     271
    278272        $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    279273                                 'setTimeout("parent.location.href=\''.$System->Link('/export/?Action=View&Tab=7&Auto&ExportId='.$Export->Id).'\'", 5000)'.
    280274                                                 '</script>';
    281     $Output .= ' <strong>Dokončeno procent: '.ProgressBar(300, $Line).'</strong>';
    282     if ($Line == 0) $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
     275    $Output .= ' <strong>Dokončeno procent: '.ProgressBar(300, $Task['Progress']).'</strong>';
     276    if ($Task['Progress'] == 0) $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
    283277  }
    284278  return($Output);
  • trunk/Modules/Export/ProcessTask.php

    r730 r731  
    1717        $System->Run();
    1818
    19 function SetProgres($Export,$per) {
    20         $File = new FileStream();
    21         $File->CreateFile($Export->TempDir.'progress');
    22         $File->WriteLine($per);
     19function SetProgress($Export,$per) {
     20   global $System;
     21        $System->Database->query('UPDATE `ExportTask` SET `Progress`='.$per.' WHERE `Export`='.$Export->Id);
    2322}
    2423function SetOnline() {
     
    119118        $Export->Init();
    120119
    121         SetProgres($Export,10);
     120        SetProgress($Export,10);
    122121
    123122        echo('Mazání starých souborů...'."\n");
     
    127126        if(file_exists($Export->TempDir.'CzWoW_DBC.zip')) unlink($Export->TempDir.'CzWoW_DBC.zip');
    128127
    129         SetProgres($Export,20);
     128        SetProgress($Export,20);
    130129        if(function_exists('gzcompress'))
    131130        {
     
    134133          exec('zip -r -j '.$Export->TempDir.'CzWoW_DBC.zip '.$Export->TempDir.'dbc/');
    135134          echo('Hotovo'."\n");
    136           SetProgres($Export,80);
     135          SetProgress($Export,80);
    137136        } else echo('Funkce pro tvorbu Zip souboru není podporována!'."\n");
    138137        $System->Database->query('UPDATE `ExportTask` SET `TimeFinish`=NOW() WHERE `Export`='.$Export->Id);
     
    141140        echo 'Caught exception: ',  $e->getMessage(), "\n";
    142141      }
    143       if (file_exists($Export->TempDir.'progress')) unlink($Export->TempDir.'progress');
    144142    } else
    145143    {
     
    157155    if($DbRow['ExportId'] != '')
    158156    {     
     157      try
     158      {
    159159     // echo shell_exec('"'.dirname(__FILE__).'./client_cz_export.sh" '.$DbRow['ExportId'].'');
    160160
     
    168168       
    169169        // Delete old files
    170         SetProgres($Export,5);
     170        SetProgress($Export,5);
    171171        echo('Delete old files...'."\n");
    172172        DeleteOldFiles($Export->TempDir.'dbc');
     
    175175       
    176176        //copy need files
    177         SetProgres($Export,10);
     177        SetProgress($Export,10);
    178178        echo('Copy files...'."\n");
    179179        rcopy('files/'.$Export->ClientVersion['Version'].'/patch-5.MPQ', $Export->TempDir.'patch-5.MPQ');
     
    184184        rcopy('files/Fonts/', $Export->TempDir.'Fonts/');       
    185185             
    186         SetProgres($Export,15);
     186        SetProgress($Export,15);
    187187        echo('Export lua...'."\n");
    188188        $Export->ExportToLua();
    189         SetProgres($Export,20);
     189        SetProgress($Export,20);
    190190        echo('Export CzWoW...'."\n");
    191191        $Export->MakeAddon();
    192         SetProgres($Export,30);
     192        SetProgress($Export,35);
    193193        echo('Export dbc...'."\n");
    194194        $Export->ExportToDBC();
    195195     
    196196        echo('Create readme...'."\n");
    197         SetProgres($Export,60);
     197        SetProgress($Export,65);
    198198        $File = new FileStream();
    199199        $File->CreateFile($Export->TempDir.'ReadMe.htm');
     
    202202       
    203203        echo('Packing files...'."\n");
    204         SetProgres($Export,70);
     204        SetProgress($Export,70);
    205205        $workdir = str_replace('/',DIRECTORY_SEPARATOR,$Export->TempDir);
    206206        MPQPack($workdir.'lua');
    207         SetProgres($Export,80);
     207        SetProgress($Export,80);
    208208        MPQPack($workdir.'dbc');
    209209
    210         SetProgres($Export,90);
     210        SetProgress($Export,90);
    211211        echo('Creating instalator...'."\n");
    212212        if (DIRECTORY_SEPARATOR == '/') // linux
     
    216216          echo exec('"'.$workdir.$nsifile.'" '); //"c:\Program Files (x86)\NSIS\makensisw.exe" /Xscriptcmd
    217217
    218         SetProgres($Export,100);
     218        SetProgress($Export,100);
    219219        echo ("\n"."Hotovo"."\n");
    220220        $System->Database->query('UPDATE `ExportTask` SET `TimeFinish`=NOW() WHERE `Export`='.$DbRow['Export']);
     221      } catch (Exception $e)
     222      {
     223        echo 'Caught exception: ',  $e->getMessage(), "\n";
     224      }
    221225    } else
    222226    {
Note: See TracChangeset for help on using the changeset viewer.