PageRenderTime 54ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/imapMailChecker/1_internetbaukasten_de.php

https://github.com/dimon36/projekt_1
PHP | 163 lines | 100 code | 35 blank | 28 comment | 9 complexity | 922fcaa34d21e2f9b9faf2043bbb7254 MD5 | raw file
  1. <?
  2. $db = new edb($db_data);
  3. $curl_start = new Curl;
  4. /* try to connect */
  5. $inbox = imap_open($IMAPhostname,$IMAPusername,$IMAPpassword) or die('Cannot connect to Imap: ' . imap_last_error());
  6. /* grab emails */
  7. $emails = imap_search($inbox,'ALL');
  8. /* if emails are returned, cycle through each... */
  9. if($emails) {
  10. /* begin output var */
  11. $output = '';
  12. /* put the newest emails on top */
  13. rsort($emails);
  14. /* for every email... */
  15. foreach($emails as $email_number) {
  16. /* get information specific to this email */
  17. $overview = imap_fetch_overview($inbox,$email_number,0);
  18. $message = imap_fetchbody($inbox,$email_number,2);
  19. if ($overview[0]->subject == 'Aktivierung Ihres InternetBaukasten-Accounts') {
  20. $Message[] = $message;
  21. }
  22. $i++;
  23. If ($i > 3) continue;
  24. }
  25. }
  26. /* close the connection */
  27. //TODO test
  28. //$email_received = file_get_contents("email.txt", "r");
  29. //RegExp email and to the $ok goes a confirmation link
  30. /* preg_match_all("!<a.*?href=\"http:\/\/www.internetbaukasten.de\/index.php\?aktion\=activate&hc\=?'?([^ \"'>]+)\"?'?.*?></a>!is",$email_received,$ok); */
  31. $email_received = str_get_html($Message[0]);
  32. $email_received = $email_received->find(".font_grey_9", 0)->find("a", 0)-> plaintext;
  33. //Goes to the link from email and click confirm
  34. $url_to_confirm = 'http://www.internetbaukasten.de/index.php?aktion=testaccount&special_create=gibk&hc='.$email_received;
  35. $curl_confirm = new Curl;
  36. $response = $curl_confirm->post($url_to_confirm, array('agb' => 'true'));
  37. $confirm_page = $response->body;
  38. $confirm_page = str_get_html($confirm_page);
  39. //TODO test
  40. //$confirm_page = file_get_html("confirm.html", "r");
  41. //Account information
  42. $KundenNummer = @$confirm_page->find("div.ow_info", 0)->find("strong", 0)-> plaintext;
  43. $KontaktEmail = @$confirm_page->find("div.ow_info", 1)->find("strong", 0)-> plaintext;
  44. $Benutzername = @$confirm_page->find("div.ow_info", 2)->find("strong", 0)-> plaintext;
  45. $Passwort = @$confirm_page->find("div.ow_info", 3)->find("strong", 0)-> plaintext;
  46. //START query to change page text
  47. $PageEdit = new Curl;
  48. $response = $PageEdit->get('http://www.internetbaukasten.de/index.php?view=bearbeiten');
  49. $pageToEdit = $response->body;
  50. echo $pageToEdit = str_get_html($pageToEdit);
  51. $ul = $pageToEdit->find("ul#ibk_nav_ul", 0);
  52. //API POST - query to receive article data
  53. $article = new Curl;
  54. $response = $article->post('http://link.gutes-lernen.com/xml/request.php', array('req_id' => '0000', 'pass' => 'ad6cd7f8413b9b6bc0baaddf62d0ce59', 'get_domain' => 'true', 'dom_purl' => 'sdom.co', 'get_link' => 'false'));
  55. $articleBody = $response->body;
  56. $xml = json_decode(json_encode((array) simplexml_load_string($articleBody)), 1);
  57. //Formatting the Text
  58. $formattedText = '<h1>'.$xml['element']['head1'].'</h1>';
  59. $i=0;
  60. foreach ($xml['element']['head3'] as $head3) {
  61. if (is_string($head3) == true)
  62. $formattedText .= '<h3>'.$head3.'</h3>';
  63. $text = $xml['element']['text'][$i];
  64. if (is_string($text) == true)
  65. $formattedText .= '<p>'.$text.'</p>';
  66. $i++;
  67. }
  68. //change title heading text
  69. $PageEdit->get('http://www.internetbaukasten.de/index.php?view=standalone_headtext');
  70. $PageEdit->post('http://www.internetbaukasten.de/index.php', array('aktion' => 'standalone_headtext', 'dk_headfont_edit' => 'standard', 'dk_head1size_edit' => '26', 'dk_head2size_edit' => '17', 'dk_headtexth1_edit' => $xml['element']['subpage_title'], 'dk_headtexth2_edit' => '' , 'dk_headcolor_edit' => 'standard' , 'dk_headposition_edit' => 'standard'));
  71. //receive all links to editable pages
  72. //TODO
  73. foreach($ul->find('li') as $li)
  74. {
  75. $linksToEdit[] = $li -> find('a', 0) -> href;
  76. }
  77. $response = $PageEdit->get('http://www.internetbaukasten.de/'.$linksToEdit[0]);
  78. $pageToEdit = $response->body;
  79. $pageToEdit = str_get_html($pageToEdit);
  80. $id_postToEdit = $pageToEdit -> find('#ibk_content_container', 0) -> first_child() -> first_child() -> id;
  81. preg_match_all("/ibk_block_id_(.*)/",$id_postToEdit,$ok_id);
  82. $PageEdit-> get('http://www.internetbaukasten.de/index.php?aktion=edit_block&block_id='.$ok_id[1][0].'&type=edit');
  83. $PageEdit->post('http://www.internetbaukasten.de/index.php', array('aktion' => 'edit_block_data', 'ta' => $formattedText));
  84. message_log('page edited</br>');
  85. //query to edit page with subpage title text
  86. $response = $PageEdit->get('http://www.internetbaukasten.de/index.php?view=standalone_seiten_ajax');
  87. $pageToEdit = $response->body;
  88. $pageToEdit = str_get_html($pageToEdit);
  89. $ol = $pageToEdit->find("#seitenlisten_container", 0)->find("ol", 0);
  90. //find first id of page to edit
  91. $lastchild = $ol -> firstchild() -> id;
  92. preg_match_all("/list_(.*)/",$li -> id,$ok_id);
  93. //update name of first site
  94. $PageEdit-> get('http://www.internetbaukasten.de/index.php?aktion=seite_editieren&seiten_id='.$ok_id[1][0].'&ref=standalone_seiten_ajax');
  95. $PageEdit-> post('http://www.internetbaukasten.de/index.php', array('back2where' => 'standalone_seiten_ajax', 'aktion' => 'seite_update', 'titel' => $xml['element']['subpage_title'], 'sitetitle_o' => '', 'filename' => '', 'innav_o' => '0', 'secure' => '' , 'seitenkeywords' => '' , 'variante' => '0'));
  96. //Delete all other sites
  97. $i=0;
  98. foreach ($ol -> find('li') as $li) {
  99. $i++;
  100. preg_match_all("/list_(.*)/",$li -> id,$ok_id);
  101. if ($i>1)
  102. $PageEdit->post('http://www.internetbaukasten.de/index.php?aktion=seite_loeschen_ajax', array('seiten_id' => $ok_id[1][0]));
  103. }
  104. //END query to change page text
  105. $exportServerId = rand(1, 5);
  106. $exportToTheWeb = new Curl;
  107. $exportToTheWeb->post("http://www.internetbaukasten.de/index.php", array('exportServerId' => $exportServerId, 'aktion' => 'export_start', 'privateServer' => '0', 'domainweiterleitung' => '0'));
  108. $exportToTheWeb->get('http://www.internetbaukasten.de/index.php?aktion=export_do');
  109. switch ($exportServerId) {
  110. case '1':
  111. $url_domain = "www.gratis-webserver.de/".$Benutzername;
  112. break;
  113. case '2':
  114. $url_domain = "www.verein-im-netz.de/".$Benutzername;
  115. break;
  116. case '3':
  117. $url_domain = "www.ich-informiere.de/".$Benutzername;
  118. break;
  119. case '4':
  120. $url_domain = "www.mitten-im-web.de/".$Benutzername;
  121. break;
  122. case '5':
  123. $url_domain = $Benutzername.".ibk.me";
  124. break;
  125. }
  126. //Query to insert new entry to the table `saved_accounts`
  127. $db->s("INSERT INTO `saved_accounts` (`id`, `KundenNummer`, `KontaktEmail`, `Benutzername`, `Passwort`, `url`) VALUES (NULL, '".$KundenNummer."', '".$KontaktEmail."', '".$Benutzername."', '".$Passwort."', '".$url_domain."');");
  128. message_log('email confirmed and added to DB url is <a href="http://'.$url_domain.'" target="_blank">'.$url_domain.'</a>');