
    J{h                     B   S SK Jr  S SKJr  S SKJr  S SKJr  S SKrS SK	7  S SK
7  S SK7  S SK7  S SKJr  S SKJr  S SKr " S	 S
5      r " S S\R$                  5      r " S S\5      r " S S\5      r " S S5      r " S S5      r " S S\5      r " S S\5      rg)    )generics)render)View)JsonResponseN)*)datetime)
HTMLParserc                        \ rS rSrS rS rSrg)ParseRedbubbleProductURL   c                     Xl         g Nurl)selfr   s     ڄ/Users/waleedhassanin/Documents/snowflake_co_dev_github/snow_flake_back_end_deploy/snow_flake_api/snow_flake_external_links/views.py__init__!ParseRedbubbleProductURL.__init__   s        c                     U R                   R                  S5      nUS   R                  S5      n0 nUS   US'   US   US'   U R                   US'   U$ )	Nzhttps://www.redbubble.com/i/   /r   category   	productId
productURL)r   split)r   stringList1stringList2
productMaps       r   getProductURL&ParseRedbubbleProductURL.getProductURL   s^    hhnn%CD!!n**3/
!,Q
:"-a.
;#'88
< r   r   N)__name__
__module____qualname____firstlineno__r   r!   __static_attributes__ r   r   r   r      s    r   r   c                   L    \ rS rSr\R
                  R                  5       r\r	Sr
g)RedbubbleDepartmentList   r(   N)r#   r$   r%   r&   RedbubbleDepartmentobjectsallquerysetRedbubbleDepartmentSerializerserializer_classr'   r(   r   r   r*   r*      s    "**..0H4r   r*   c                   :    \ rS rSr/ r/ rS rS rS rS r	S r
Srg)	RedbubbleProductListParser!   c                     SnU HH  nSU;   a  SU;   a  US-  nSU;   a  SU;   a  US-  nUS:X  d  M-  U R                   R                  U5        MJ     g )Nr   classzstyles__link--3QJ5Nr   elementar   )attrListappend)r   attrscountis       r   checkProductListLink/RedbubbleProductListParser.checkProductListLink&   sX    A!| 5 :
A~#(
z$$U+ r   c                     U R                    HK  nU HB  nSU;   d  M  [        US   5      nU R                  R                  UR	                  5       5        MD     MM     g )Nhrefr   )r9   r   productUrlMapListr:   r!   )r   r=   jparseUrls       r   getProductURLFromList0RedbubbleProductListParser.getProductURLFromList0   sL    AQ;7!=H**11(2H2H2JK  r   c                 4    US:X  a  U R                  U5        g g )Nr8   )r>   r   tagr;   s      r   handle_starttag*RedbubbleProductListParser.handle_starttag7   s    #:%%e, r   c                     g r   r(   r   rI   s     r   handle_endtag(RedbubbleProductListParser.handle_endtag;       r   c                     g r   r(   )r   datas     r   handle_data&RedbubbleProductListParser.handle_data?   rP   r   r(   N)r#   r$   r%   r&   r9   rB   r>   rE   rJ   rN   rS   r'   r(   r   r   r3   r3   !   s'    H,L-r   r3   c                       \ rS rSrS rSrg)GetRedbubbleProductListPageViewD   c                 R   [         R                  " UR                  5      n0 nSU;   aq  [        5       nUR                  R                  5         UR                  R                  5         UR                  US   5        UR                  5         UR                  US'   SUS'   [        USS9$ )NhtmlPageproductUrlListF	isSuccesssafe)
jsonloadsbodyr3   rB   clearr9   feedrE   r   r   requestargskwargsjsonData
urlMapListparsers          r   post$GetRedbubbleProductListPageView.postE   s    ::gll+
!/1F$$**,OO!!#KK,-((*+1+C+CJ'("'
;
 	
r   r(   Nr#   r$   r%   r&   rj   r'   r(   r   r   rV   rV   D   s    
r   rV   c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)ConvertDataV   c                    Sn0 nUR                  5       nUR                  SS5      nUR                  SS5      n[        U5      nUS-   [        U5      -   n0 nXxS'   XS'   SUS'   SUS'   [        R
                  R                  US	9n	U	R                  5       S
:X  a1  [        US9n
U
b%  U
R                  5       (       a  U
R                  5         XtS'   SUS'   [        R                  " 5       US'   [        R                  " 5       US'   [        R
                  R                  US	9nS nUR                  5       S
:  a  US
   nS nUb  [        UUSUR                  0S9nO	[        US9nS nUb  UR                  5       (       a  UR                  5         UR                   S   n0 nUb  XS'   UR                  US'   XS'   ["        R
                  R                  US9R                  UR                  S9nS nUR                  5       S
:  a  US
   nUR                  US'   OSUS'   US   nS nUS
:  a  [%        UUS9nO	[%        US9nUb'  UR                  5       (       a  UR                  5         SnU(       a  U$ g )NF-_ keyNamename	isClothesisAccessoriesrt   r   rR   T	isVisiblecreatedDateupdatedDate
languageIdrR   contextiddepartmentId)r   r}   )lowerreplacelenstrr,   r-   filter__len__r0   is_validsaver   now
DepartmentDepartmentSerializerr   rR   DepartmentLanguageDepartmentLanguageSerializer)r   departmentNameselectedLanguageisValiddepartmentMap
stringData	stringLenrt   tikTokDepartmentMapredbubbleDepartmentListredbubbleDepartmentSerializerdepartmentListselectedDepartmentdepartmentSerializerdepIddepartmentLanguageMapselectedLangListdepartmentLanguage	depLangIddepartmentLanguageSerializers                       r   saveDepartmentConvertData.saveDepartmentX   s   #))+
''C0
''C0

O	s"S^3 )0I&&4F#+0K(/4O,"5"="="D"Dw"D"W"**,1,IQd,e),8099;;1668#*i %)k"'/||~m$'/||~m$#++22W2E!!!#a'!/!2#)#7&&)+;+>+>?$  $8]#K +#,,..$))+(--d3E$&!+0>f-6F6I6I%l38=n5#5#=#=#D#DTY#D#Z#a#ao  pC  pC#a  $D %)"#++-1)9!)<&2D2G2G)$/ 35)$/1$7	/3,q=3O*2G40 4P440 0;3<<>>499;"&Lr   c                    Sn0 nUR                  5       nUR                  SS5      nUR                  SS5      n[        U5      nUS-   [        U5      -   nXtS'   SUS'   [        R
                  " 5       US'   [        R
                  " 5       US	'   [        R                  R                  US
9nS n	UR                  5       S:  a  US   n	S n
U	b  [        U	USUR                  0S9n
O	[        US9n
S nU
b  U
R                  5       (       a  U
R                  5         U
R                  S   n0 nUb  XS'   UR                  US'   XS'   [        R                  R                  US9R                  UR                  S9nS nUR                  5       S:  a  US   nUR                  US'   OSUS'   US   nS nUS:  a
  [!        XS9nO	[!        US9nUb'  UR                  5       (       a  UR                  5         SnU(       a  U$ g )NFrq   rr   rs   rt   Trz   r{   r|   rx   r   r}   r~   ry   r   ru   brandId)r   r   r   )r   r   r   r   r   r   Brandr-   r   r   BrandSerializerr   r   r   rR   BrandLanguageBrandLanguageSerializer)r   	brandNamer   r   brandMapr   r   rt   	brandListselectedBrandbrandSerializerr   brandLanguageMapr   brandLanguagebrandLangIdbrandLanguageSerializers                    r   	saveBrandConvertData.saveBrand   s/   __&
''C0
''C0

O	s"S^3% $"*,,."*,,.MM((7(;	"%aLM$-!!)+;+>+>?O .8<O&''))$$&%**40G!++4(1A1D1D ..5+#0#8#8#?#?'#?#R#Y#Ygwgzgz#Y#{  $#++-1$4Q$7M-:-=-=$T* .0$T*.t4*.'?.E%/+ /F//+ +6.7799/446"&Nr   c                    [         R                  R                  US9nS nUR                  5       S:  a  US   n0 nXS'   X&S'   SUS'   SUS'   SUS	'   [        R
                  " 5       US
'   [        R
                  " 5       US'   UR                  US'   S nUb  UR                  US'   [        XVS9nO	[        US9nUb4  UR                  5       (       a  UR                  5         UR                  S   $ g )N)emailr   ru   r    passwordT
isVerifiedisFreeSubscriptionUsedr{   r|   selectedLanguageIdr   ry   )Supplierr-   r   r   r   r   r   SupplierSerializerr   r   rR   )r   ru   r   r   supplierListselectedSuppliersupplierMapsupplierSerializers           r   saveSupplierConvertData.saveSupplier   s   ''..u.=!A%+A"F$G"$J$(L!04,-%-\\^M"%-\\^M",<,?,?()!' 0 3 3K!34D!X!3;!G)!**,,"'')%**400	 *r   c                 ^    [         R                  R                  5       nUb  UR                  $ g r   )
NewArrivalr-   lastr   )r   selecteds     r   getNewArrivalConvertData.getNewArrival  s+    %%**,;;  r   c                    [         R                  R                  US   S9nS nUR                  5       S:  a  US   nS n0 nUb  UR                  US'   UR
                  US'   UR                  US'   UR                  US'   UR                  US'   UR                  US'   UR                  US	'   UR                  US
'   US   US'   US   US'   US   US'   US   US'   [        XFS9nOzUS   US'   SUS'   SUS'   SUS'   SUS'   SUS'   [        R                  " 5       US	'   [        R                  " 5       US
'   US   US'   US   US'   US   US'   US   US'   [        US9nUb  UR                  5       (       az  UR!                  5         U R#                  UR$                  S   US   U5        U R'                  UR$                  S   US   U5        U R)                  UR$                  S   US   U5        g g g )Nrt   rx   r   
isApprovedisTop
isFavoriteisElectronic
totalViewsr{   r|   r   r   
supplierIdnewArrivalIdry   TFr   titlefeatureBulletListMap
skuListMap)Itemr-   r   r   rt   r   r   r   r   r   r{   r|   ItemSerializerr   r   r   r   saveItemLanguageListrR   saveFeatureBulletListsaveSKUList)r   r^   r   selectedItemListselectedItemitemSerializeritemMaps          r   saveItemConvertData.saveItem  sL   <<..tI.G##%)/2#!-!5!5GI$0$;$;GL!+11GG$0$;$;GL!&2&?&?GN#$0$;$;GL!%1%=%=GM"%1%=%=GM"&*>&:GN#!%iGI$($6GL!&*>&:GN#+LGN!%iGI$(GL!$GG$)GL!&+GN#$%GL!%-\\^GM"%-\\^GM"&*>&:GN#!%iGI$($6GL!&*>&:GN#+9N%&&((##%)).*=*=d*CDMRbc**>+>+>t+DTJ`Eabrs  !4!4T!:4;MN^_ ) &r   c                 L    [         R                  " [         R                  U5      $ r   )uuiduuid5NAMESPACE_URL)r   sentences     r   sentence_to_uuidConvertData.sentence_to_uuidH  s    zz$,,h77r   c                    [         R                  R                  US9nS nU H+  nUR                  R                  UR                  :X  d  M)  Un  O   0 nX'S'   X'S'   XS'   UR                  US'   S nUb  UR                  US'   [        XWS9nO	[        US9nUb'  UR                  5       (       a  UR                  5         g g g )NitemIdru   descriptionr   r}   r   ry   )ItemLanguager-   r   r}   r   ItemLanguageSerializerr   r   )	r   r   itemNamer   selectedItemLanguageListr   currentselectedMapitemLanguageSerializers	            r   r    ConvertData.saveItemLanguageListK  s    #/#7#7#>#>f#>#M /G!!$$(8(;(;;" 0
 &F%-M" &H$4$7$7L!!% (K%;&" &<$&" "-%..00&++- 1 .r   c                    [         R                  R                  US9nU GH9  nU R                  US   5      nSnU H%  nUR                  UR                  5       :X  d  M#  Sn  O   0 n	S n
U(       aD  WR                  U	S'   UR                  U	S'   [        R                  " 5       U	S'   XS'   [        XS	9n
OUS
U	S'   UR                  5       U	S'   [        R                  " 5       U	S'   [        R                  " 5       U	S'   XS'   [        U	S	9n
U
c  M  U
R                  5       (       d  GM  U
R                  5         U R                  U
R                  S   US   U5        GM<     g )Nr   r   FTr   r{   r|   r   ry   r   rt   )FeatureBulletr-   r   r   rt   __str__r   r{   r   r   FeatureBulletSerializerr   r   saveFeatureBulletLanguageListrR   )r   r   r   r   featureBulletListfeatureBulletMapserial_uuidisExistsfeatureBulletfeatureBulletNewMapfeatureBulletSerializers              r   r   !ConvertData.saveFeatureBulletListg  sf   )1188&8I 4//0@0OPKH!2 ((K,?,?,AA#H "3
 #%&*#,9,<,<#D)5B5N5N#M25=\\^#M206H-*A-*j',-#D)1<1D1D1F#I.5=\\^#M25=\\^#M206H-*AGZ*['&2*3355+002667N7S7STX7YZjkxZy  {K  L9 !5r   c                    [         R                  R                  US9nS nU H+  nUR                  R                  UR                  :X  d  M)  Un  O   S n0 nUb;  UR                  US'   X(S'   UR
                  US'   UR                  US'   [        XXS9nO X(S'   XS'   UR                  US'   [        US9nUb'  UR                  5       (       a  UR                  5         g g g )N)featureBulletIdr   r   r  r}   ry   )	FeatureBulletLanguager-   r   r}   r   r  FeatureBulletLanguageSerializerr   r   )	r   r  r   r   featureBulletLanguageListr   r   featureBulletLanguageSerializerr   s	            r   r   )ConvertData.saveFeatureBulletLanguageList  s    $9$A$A$H$H[j$H$k!0G!!$$(8(;(;;" 1
 +/' (K)4&-5-E-EK)*(8(;(;K%.Mh.h+)4&-<)*(8(;(;K%.MS^._+*6.7799/446 : 7r   c                 <   [         R                  R                  US9nU GH  nS nUS   nU H  nUR                  US   :X  d  M  Un  O   S n	0 n
Ub  UR                  U
S'   UR                  U
S'   UR
                  U
S'   US   U
S'   US   S   U
S'   UR                  U
S'   UR                  U
S'   UR                  U
S	'   UR                  U
S
'   UR                  U
S'   UR                  U
S'   UR                  U
S'   XS'   [        XjS9n	OyUS   U
S'   US   U
S'   US   U
S'   US   S   U
S'   SU
S'   SU
S'   SU
S	'   SU
S
'   SU
S'   [        R                  " 5       U
S'   [        R                  " 5       U
S'   XS'   [        U
S9n	U	c  GMh  U	R!                  5       (       d  GM  U	R#                  5         U R%                  U	R&                  S   US   U5        U R)                  U	R&                  S   US   U5        U R+                  U	R&                  S   US   5        GM     g )Nr   pricer   rt   ru   amountdiscountr   r   isMostDiscountisNewArrivalr{   r|   r   ry      FskuOptionListskuImageList)SKUr-   r   rt   r   ru   r
  r   r   r  r  r{   r|   SKUSerializerr   r   r   r   saveSKUOptionListrR   saveSKUDescriptionListsaveSKUImageList)r   r   
skuNewListr   
skuOldListskuNewselectedOldr	  skuOldskuSerializerskuMaps              r   r   ConvertData.saveSKUList  s]   [['''8
 FK7OE$>>VD\1"(K %
 !MF&*~~t$/$7$7y!!,!1!1v"'/w%*:%6x%@z"#.#5#5x "-"3"3w'2'='=|$+6+E+E'()4)A)A~&(3(?(?}%(3(?(?}%#)x  -k H$*4Ly!!'v"'/w%*:%6x%@z"#$x "'w',|$+0'().~&(0}%(0}%#)x  -V <( ))++!&&(**=+=+=d+CF?D[\lm//0B0B40HP_I`aqr))-*<*<T*B6.CYZa !r   c           	         [         R                  R                  US9nU GHH  nS nU H  nUR                  US   :X  d  M  UnM     S n0 n	UbZ  UR                  U	S'   UR                  U	S'   UR
                  U	S'   UR                  U	S'   XS'   US   S:X  a  S	Ul        [        XiS
9nOSUS   U	S'   [        R                  " 5       U	S'   [        R                  " 5       U	S'   XS'   US   S:X  a  S	U	S'   [        U	S
9nUc  M  UR                  5       (       d  M  UR                  5         Sn
SU;   a  US   n
U R                  UR                  S   US   US   UR                  S   X5        GMK     g NskuIdskuOptionKeyNamer   rt   r{   r|   r!  	bodyColorTry   isColorr   skuOptionColorskuOptionTitleskuOptionValue)	SKUOptionr-   r   rt   r   r{   r|   r$  SKUOptionSerializerr   r   r   r   saveSKUOptionLanguageListrR   )r   r!  newSKUOptionListr   oldSKUOptionListnewSKUOptionr   oldSKUOptionskuOptionSerializerskuOptionMap	colorNames              r   r  ConvertData.saveSKUOptionList  s   $,,33E3B,LH 0''<8J+KK+H !1 #'L#%-[[T"*2*:*:Y'.6.B.B]+.6.B.B]+(-W% 23{B'+H$&9(&W#*67I*JY'.6lln]+.6lln]+(-W% 23{B.2L+&9&N#".&//11',,. "I'<7$01A$B	223F3K3KD3QR^_oRpq}  O  rP  Qd  Qi  Qi  js  Qt  u~  PA -r   c                    [         R                  R                  US9nS nU H+  n	U	R                  R                  UR                  :X  d  M)  U	n  O   S n
0 nUb  UR                  US'   X+S'   X;S'   [        U5      S:X  a  SUR                  5       -   US'   X;S'   OX;S'   X[S'   UR                  R                  US'   UR                  R                  US	'   [        XS
9n
ORX+S'   [        U5      S:X  a  SUR                  5       -   US'   X;S'   OX;S'   X[S'   UR                  US'   XS	'   [        US
9n
U
b'  U
R                  5       (       a  U
R                  5         g g g )N)skuOptionIdr   r   valueT0xFFr1  r}   r4  ry   )SKUOptionLanguager-   r   r}   r   boolupperr4  SKUOptionLanguageSerializerr   r   )r   r4  r   r5  r$  r1  r   skuOptionLanguageListr   skuOptionLanguageskuOptionLanguageSerializerskuOptionLanguageMaps               r   r*  %ConvertData.saveSKUOptionLanguageList  s    1 9 9 @ @{ @ [!6 ++..2B2E2EE, "7
 '+#!)1 &,1),1)G}$06y7H0H$W-49[105W-4=[1191D1D1G1G .2:2F2F2I2I /*Eh*i',1)G}$06y7H0H$W-49[105W-4=[11A1D1D .2=/*EK_*`'&2*3355+002 6 3r   c                    [         R                  R                  US9nU GH:  nS nU H  nUR                  US   :X  d  M  UnM     S n0 n	UbZ  UR                  U	S'   UR                  U	S'   UR
                  U	S'   UR                  U	S'   XS'   US   S:X  a  S	Ul        [        XiS
9nOSUS   U	S'   [        R                  " 5       U	S'   [        R                  " 5       U	S'   XS'   US   S:X  a  S	U	S'   [        U	S
9nUc  M  UR                  5       (       d  M  UR                  5         Sn
SU;   a  US   n
U R                  UR                  S   US   US   X5        GM=     g r  )SKUDescriptionr-   r   rt   r   r{   r|   r$  SKUDescriptionSerializerr   r   r   r   saveSKUDescriptionLanguageListrR   )r   r!  newSKUDescriptionListr   oldSKUDescriptionListnewSKUDescriptionr   oldSKUDescriptionskuDescriptionSerializerskuDescriptionMapr1  s              r   r  "ConvertData.saveSKUDescriptionList#  s    . 6 6 = =e = L!6H%:!$,,0ABT0UU0H &; (,$ "#*2++!$'/7/?/?!),3;3G3G!-03;3G3G!-0-2'*$%78KG'+H$+CH+f(/@AS/T!),3;<<>!-03;<<>!-0-2'*$%78KG37%i0+CK\+]('3+4466,113 "I'+<<$56F$G	778P8U8UVZ8[\mn~\  AR  Sc  Ad  en  @C "7r   c                    [         R                  R                  US9nS nU H+  nUR                  R                  UR                  :X  d  M)  Un  O   S n	0 n
UbY  UR                  U
S'   X*S'   X:S'   U4U
S'   UR                  R                  U
S'   UR
                  R                  U
S'   [        XzS9n	O(X*S'   X:S'   XJS'   UR                  U
S'   XS'   [        U
S9n	U	b'  U	R                  5       (       a  U	R                  5         g g g )	N)skuDescriptionIdr   r   r5  r1  r}   rL  ry   )	SKUDescriptionLanguager-   r   r}   r   rL   SKUDescriptionLanguageSerializerr   r   )r   rL  r   r5  r1  r   skuDescriptionLanguageListr   skuDescriptionLanguage skuDescriptionLanguageSerializerskuDescriptionLanguageMaps              r   rC  *ConvertData.saveSKUDescriptionLanguageListH  s5   %;%C%C%J%J^n%J%o"&@"%00337G7J7JJ1 'A
 ,0($&!.6kk%d+16g.16g.5>Z%k26>6I6I6L6L%l3<D<U<U<X<X%&89/OPX/x,16g.16g.5>k26F6I6I%l3<L&89/OUn/o,+7/88::0557 ; 8r   c                 (   [         R                  R                  US9nU H  nS nU H  nUR                  US   :X  d  M  Un  O   S n0 nUbn  UR                  US'   UR                  US'   UR
                  US'   UR                  US'   US   US'   UR                  US'   UR                  US'   [        XX5      nO.US   US'   S US'   S US'   US   US'   S US'   XS'   [        XX5      nUR                  5       (       d  M  UR                  5         M     g )	Nr   rt   r   fileName	extensionimagesourcer!  )SKUImager-   r   rt   r   rU  rV  rW  r!  SKUImageSerializerr   r   )	r   r!  newSKUImageListoldSKUImageListnewSKUImager   oldSKUImageskuImageSerializerskuImageMaps	            r   r  ConvertData.saveSKUImageListf  s@   "**11%1@*KH.&&+i*@@*H  /
 "&K#"*++D!'/'7'7I&(0(9(9J')1););K(&1'&:H%%-^^G$%-^^G$%7%M"'29'=I&(,J')-K(&1'&:H%%)G$%*G$%7%M"!**,,"'')9 +r   c                 ~   S nS nS nS n[         R                  R                  SS9nS nUR                  5       S:  a  US   nSU;   a'  U R	                  US   U5      nU R                  SU5      nU R                  SSU5      nU R                  5       nUb*  Ub'  Ub$  Ub!  X!S'   X1S	'   XAS
'   XQS'   U R                  X5        g )Nen)languageCoder   r   zSnowflake RedbubblezRedbubble Snowflakezsnowflakecodev12022@gmail.comr   r   r   r   )	Languager-   r   r   r   r   r   r   r   )r   r^   r   r   r   r   languageListr   s           r   convertConvertData.convert  s    
''..d.C!A%+A..tJ/?@PQLnn%:;KLG&&'<=\]mn
))+#(;
@V[g[s#/ %O!+#/ MM$0r   r(   N)r#   r$   r%   r&   r   r   r   r   r   r   r   r   r   r   r  r*  r  rC  r  rg  r'   r(   r   r   rn   rn   V   sb    TlGR1:
-`^8.8L@743[j"PH'3R#@J8<*@r   rn   c                   ,    \ rS rSrS rS rS rS rSrg)RedbubbleProductDetailDatai  c                 2    U H  nUS   US   :X  d  M    g   g)Nr"  TFr(   )r   skuOptionMapListr0  r   s       r   checkIfSKUOptionExists1RedbubbleProductDetailData.checkIfSKUOptionExists  s(    'G)*l;M.NN ( r   c                     U Ha  nSU;   d  M  SU;   d  M  SU;   d  M  US   S:X  d  M&  US   U:X  d  M1  US   nU H%  nSU;   d  M  SU;   d  M  US   S:X  d  M  US   s  s  $    Mc     g)Nru   r5  
attributesconfigurationdefaultTextr   r(   )r   configurationSetListr&  r   subAttributeListsubAttributes         r   getSKUOptionTitle,RedbubbleProductDetailData.getSKUOptionTitle  s|    +G W%7LG<S6?o5w'>9+2<+@(,<L%5'\:Q#/#7=#H+7+@$@ -= , r   c                    S n0 n0 n/ nSU;   a  US   nSU;   a  SUS   0nSU;   a  US   nSU;   aR  SUS   ;   aI  US   S   n/ nU H9  n	0 n
SU	;   d  M  U	S   S:X  d  M  U	S   U
S	'   U	S
   U
S'   UR                  U
5        M;     SU;   a  US   nU H  n0 nSU;   a^  SU;   aX  SU;   aR  US   US'   US   US'   US   nU H7  nSU;   d  M  SU;   d  M  US   S:X  a  US   US'   US   S:X  d  M/  US   US'   M9     U R                  Xm5      S:X  d  M  U R                  X-S   5      nUS:w  a  UUS'   UR                  U5        M     UUUUWS.nU$ )Nr   r   ru   r	  
previewSetpreviewspreviewTypeIdprimaryrt   r   rW  rp  r5  r"  r&  rr  r'  hexColorr%  Fr   )r   r   r	  r  r  )r:   rm  rv  )r   itemconfigSetListr   categoryMappriceMaprl  rz  r  rW  skuImageattributesList	attributer0  rt  ru  r   r  s                     r   getItemFromInventoryCategorySet:RedbubbleProductDetailData.getItemFromInventoryCategorySet  s   4<dBD !4#67Kd?G}H4T,//-j9!%E!H&%/ 1Y>272HHY/05eHW-(//9 & 4!,/N+	!i'9,$	17@7HL!345>w5GL!12'0'>$(8!\1g6M+F3}DAMgAV-= >+F3zAAMgAV-= > )9 ../?NRWW 22)8J+KE {9>%56$++L9/ ,4 #-'
 r   c                    0 nS nSU;   a)  SUS   ;   a   SUS   S   ;   a  US   S   S   nOUS   S   nUGb  / nS nS nS nS nSU;   a  US   nSU;   a  US   nS n	SU;   a)  US   n	U	b!  SU	;   a  U	S   nSU	;   a  U	S   n
S	U
;   a  U
S	   n/ nS
US   S   ;   a>  XS   S   S
   ;   a0  US   S   S
   U   n/ nU H  n0 nXS'   UR                  U5        M     SU;   a  US   nUR                  5       S:  aR  XRS'   XbS	'   XrS'   XS'   XS'   SU;   a  US   n/ nW H&  nU R                  UU5      nUR                  U5        M(     UUS'   [        SS5       n[        R
                  " UU5        S S S 5        U$ ! , (       d  f       U$ = f)Nprops	pagePropsinventoryCategorySetr   categoryNamedefaultItemproductTypeIdworkr   productDescriptionsr   configurationSetr   rt   r   r   itemsr   z	data.jsonw)r:   r   r  openr^   dump)r   rg   r   r  r  itemKeyName	itemTitleitemCategoryr  r  r  r   productDescriptionListr   r   skusr   skur  fs                       r   getItemDetail(RedbubbleProductDetailData.getItemDetail  sA   #h;(72C#C%'):;)GG'/'8'E*($ (0'8'E$+MKIL M++248!553NCK 442=A*&+5(3O(D,*62"d?(,WI "$(9+(FF W$5k$BCX$YY-5g->{-KLa-bcp-q*(*%'=+-(:E7)001AB (>
 "%99 45G H$$&*%0	"#, &2
#+8(2C./22/8D
C!AA#}UF%%f-   )3% +s#qIIgq! $  $# s   E44
Fr(   N)	r#   r$   r%   r&   rm  rv  r  r  r'   r(   r   r   rj  rj    s    >@Hr   rj  c                   4    \ rS rSrSr/ rS rS rS rS r	Sr
g)	RedbubbleProductDetailParseri>  Fc                 D    U H  nSU;   d  M  SU;   d  M  SU l         M     g )Nr   __NEXT_DATA__TisData)r   r;   r=   s      r   checkProductData-RedbubbleProductDetailParser.checkProductDataC  s!    Aqy_1" r   c                 4    US:X  a  U R                  U5        g g )Nscript)r  rH   s      r   rJ   ,RedbubbleProductDetailParser.handle_starttagH  s    (?!!%( r   c                     g r   r(   rM   s     r   rN   *RedbubbleProductDetailParser.handle_endtagL  rP   r   c                    U R                   (       aN   [        R                  " U5      n[        5       nUR	                  U5      n[        5       nUR                  U5        g g ! [        R                   a    [        S5         g f = f)NzFailed to decode JSON data)	r  r^   r_   rj  r  rn   rg  JSONDecodeErrorprint)r   rR   rg   productDetailr   convertDatas         r   rS   (RedbubbleProductDetailParser.handle_dataO  sn    ;;4::d+!;!='55h?)m##G,  '' 4234s   AA! !BBr  N)r#   r$   r%   r&   r  skuListr  rJ   rN   rS   r'   r(   r   r   r  r  >  s     FG#
)
4r   r  c                       \ rS rSrS rSrg)!GetRedbubbleProductDetailPageViewi\  c                     [         R                  " UR                  5      n0 nSU;   a  [        5       nUR	                  US   5        SUS'   [        USS9$ )NrY   Fr[   r\   )r^   r_   r`   r  rb   r   rc   s          r   rj   &GetRedbubbleProductDetailPageView.post]  sW    ::gll+
!13FKK,-"'
;
 	
r   r(   Nrl   r(   r   r   r  r  \  s    
r   r  )rest_frameworkr   django.shortcutsr   django.viewsr   django.httpr   r^   snow_flake.modelssnow_flake.serializers snow_flake_external_links.models%snow_flake_external_links.serializersr   html.parserr	   r   r   ListCreateAPIViewr*   r3   rV   rn   rj  r  r  r(   r   r   <module>r     s    # #  $   $ . 3  "  5h88 5 F
d 
$G	 G	R] ]~4: 4<
 
r   