/psychonaut

Repository technique de Psychonaut à l'occasion de la migration numéro trente huit mille cinq cent quatre vingts six.

Primary LanguagePHPMIT LicenseMIT

Repository technique de Psychonaut

À l'occasion de la migration numéro trente huit mille cinq cent quatre vingts six.

📢 Attention : les extraits de code présents dans ce fichier sont là à titre d'illustration, et diffèrent du code utilisé en pratique. Pour avoir une idée précise des choses qui se passent, il faudra plonger dans le vrai code !

ℹ️ Les addons doivent être installés à partir des packages zip, par exemple Serotonin/_releases/Xyzt-Serotonin-1.0.0-dev.zip, pas à partir du code source !

Cheat sheet

  • Logs nginx :

    $> sudo cat /var/log/nginx/www.psychonaut.fr-error.log
  • Recharger la config de nginx :

    $> sudo systemctl reload nginx.service
  • Packager un addon Xenforo :

    $> sudo php /var/www/my_webapp/www/cmd.php xf-addon:build-release Xyzt/SuperAddonDeLaMort
  • Je veux chmod tous les sous-dossiers d'un répertoire nudes en 755 (rwxr-xr-x), et tous les fichiers inclus en 644 (rw-r--r--) :

    $> cd nudes
    $> chmod -R 755 .
    $> find . -type f -exec chmod 644 -- {} +
  • Chercher une icône FontAwesome v5

Configuration de nginx

Les configuration des autres services que Xenforo et consorts (PHPMyAdmin, Cockpit...) ne sont pas présentes sur ce repo.

/etc/nginx/conf.d/www.psychonaut.fr.conf

Configuration racine pour le domaine apex.

/etc/nginx/conf.d/www.psychonaut.fr.d/my_webapp.conf

Paramètres généraux pour le logiciel Xenforo.

/etc/nginx/conf.d/www.psychonaut.fr.d/my_webapp.d/php.conf

Configuration de PHP et lien avec fastcgi et php-fpm.

/etc/nginx/conf.d/www.psychonaut.fr.d/my_webapp.d/mybb-threads.conf

Rewrite nécessaire au fonctionnenement de Kétamine, addon chargé de la redirection des anciens liens de sujet.

Redirection des anciens liens de topic (car les liens morts c'est l'enfer)

Addon custom Kétamine exécuté en production.

Prérequis

  • NE PAS NUKE la table de logs issue de l'importation de MyBB !

  • Importer l'ancienne table du plugin SEO psy_google_seo dans la DB sur laquelle est déployée Xenforo.

Synoptique

Importation des likes (donnez moi de la reconnaissance)

Addon Sérotonine a exécuter une seule fois.

Prérequis

  • NE PAS NUKE la table de logs issue de l'importation de MyBB !

  • Avoir l'ancienne table du plugin de likes psy_g33k_thankyoulike_thankyoulike accessible au moment de lancer le script. Elle peut être supprimée après.

  • Se préparer à un downtime de quelques minutes.

Synoptique

  • SELECT `pid`, `uid`, `dateline`
    FROM `psy_g33k_thankyoulike_thankyoulike`
    ORDER BY `psy_g33k_thankyoulike_thankyoulike`.`tlid` DESC;
    655328  1317  1702746012
    655327  5699  1702739963
    655271  1317  1702732244
    ...
  • SELECT `new_id`
    FROM `import_log_psychonaut_2`
    WHERE `content_type`="post" AND `old_id`=655328;

    629981

  • SELECT `new_id`
    FROM `import_log_psychonaut_2`
    WHERE `content_type`="user" AND `old_id`=1317;

    1317

    Attention, des fois la requête ne retournera rien car il y a des users qui sont passés à la trappe lors de l'importation somehow...

  • Préparer ses jouets :

    protected function getReactionRepo()
    {
      return \XF::app()->em()->getRepository('XF:Reaction');
    }
    
    protected function findUser($id)
    {
      return \XF::finder('XF:User')->where('user_id', $id)->fetchOne();
    }
    
    $repo = getReactionRepo();
  • Pour la réaction :

    $post_id = 629981;
    $user_id = 1317;
    
    // Cf. \XF\Repository\Reaction
    $repo.insertReaction(
      $reactionId = 1,
      $contentType = "post",  // Inchallah
      $contentId = $post_id,
      $reactUser = findUser($user_id),
      $publish = false,
      $isLike = true
    );
  • Et $repo->rebuildReactionCache() pour finir.