99import java .util .regex .Pattern ;
1010import java .util .stream .Collectors ;
1111
12+ import org .apache .http .entity .mime .MultipartEntityBuilder ;
13+ import org .apache .http .entity .mime .content .FileBody ;
1214import org .magic .api .beans .MTGCard ;
1315import org .magic .api .beans .MTGEdition ;
1416import org .magic .api .beans .enums .EnumBorders ;
2830
2931import com .google .gson .JsonObject ;
3032
33+
3134public class MTGCardSmithEditor extends AbstractPicturesEditorProvider {
3235
3336 private static final String BLACK_COLOR = "#000000" ;
@@ -393,7 +396,7 @@ private void connect() throws IOException
393396
394397 private String uploadPicture (File f , MTGCard mc ) throws IOException
395398 {
396- var res = RequestBuilder .build ().url (urlPictureUpload ).setClient (client ).post (). addHeader ( urlBuilder , urlAuthentication )
399+ var res = RequestBuilder .build ().url (urlPictureUpload ).setClient (client ).post ()
397400 .addHeader (URLTools .ACCEPT , "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" )
398401 .addHeader (URLTools .ACCEPT_ENCODING , "gzip, deflate, br, zstd" )
399402 .addHeader (URLTools .CONTENT_TYPE , "application/x-www-form-urlencoded" )
@@ -405,14 +408,62 @@ private String uploadPicture(File f, MTGCard mc) throws IOException
405408 .addContent ("location" , "mtg-card-maker" )
406409 .addContent ("status" , "new" )
407410 .addContent ("slim[]" , generateJsonData (f ,mc .getCustomMetadata ()).toString ())
408- .toHtml ();
411+ .execute ();
412+
413+
414+ for (var h : res .getAllHeaders () )
415+ System .out .println (h .getName () + " " + h .getValue ());
416+
417+ var doc = RequestBuilder .build ().url (BASE_URL +"/mtg-card-maker/edit" ).setClient (client ).get ()
418+ .addHeader (URLTools .ACCEPT , "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" )
419+ .addHeader (URLTools .ACCEPT_ENCODING , "gzip, deflate, br, zstd" )
420+ .addHeader (URLTools .ACCEPT_LANGUAGE , "fr-FR,fr;q=0.9,en;q=0.8" )
421+ .addHeader ("cache-control" , "no-cache" )
422+ .addHeader (URLTools .REFERER , BASE_URL +"/mtg-card-maker" ).toHtml ();
423+
424+
425+ System .out .println (doc );
409426
410- var imgPath = res .select ("img.previewImg2" ).attr ("src" );
427+ //var imgPath = res.select("img.previewImg2").attr("src");
428+
429+
430+ var imgPath = "" ;
411431 logger .debug ("File {} uploaded at {}" , f ,imgPath );
412432
413433 return imgPath ;
414434 }
415435
436+ private String uploadPicture2 (File f , MTGCard mc ) throws IOException
437+ {
438+ var hs = new HashMap <String ,String >();
439+ hs .put (URLTools .ACCEPT , "application/json, text/javascript, */*; q=0.01" );
440+ hs .put (URLTools .ACCEPT_ENCODING , "gzip, deflate, br, zstd" );
441+ hs .put ("Pragma" , "no-cache" );
442+ hs .put ("Connection" , "keep-alive" );
443+ hs .put ("priority" ,"u=1, i" );
444+ hs .put (URLTools .REFERER , BASE_URL +"/mtg-card-maker/edit" );
445+ hs .put (URLTools .HOST , "mtgcardsmith.com" );
446+ hs .put (URLTools .ORIGIN , BASE_URL );
447+ hs .put ("sec-ch-ua-mobile" ,"?0" );
448+ hs .put ("sec-ch-ua-platform" ,"Windows" );
449+ hs .put ("sec-fetch-dest" ,"empty" );
450+ hs .put ("sec-fetch-mode" ,"cors" );
451+ hs .put ("sec-fetch-site" ,"same-origin" );
452+ hs .put ("x-requested-with" ,"XMLHttpRequest" );
453+ hs .put ("content-type" , "multipart/form-data" );
454+
455+
456+ var res = client .doPost (BASE_URL +"/api/imgUpload.php" , MultipartEntityBuilder .create ().addPart ("file" , new FileBody (f )).build (), hs );
457+ var content = res .getEntity ().getContent ();
458+ var jres = URLTools .toText (content );
459+ System .out .println (jres );
460+
461+
462+ return "" ;
463+ }
464+
465+
466+
416467
417468 private JsonObject generateJsonData (File f , Map <EnumExtraCardMetaData , String > map ) throws IOException
418469 {
@@ -501,7 +552,7 @@ public String getName() {
501552
502553 @ Override
503554 public STATUT getStatut () {
504- return STATUT .DEV ;
555+ return STATUT .BUGGED ;
505556 }
506557
507558}
0 commit comments