You are viewing a single comment's thread from:

RE: [종료] 안피곤 천하제일 코딩 대회를 개최합니다.

in #kr6 years ago

이거 사진 부분은 저도 같은 문제가 발생하더라구요. 스팀잇에 그냥 올린 것은 사진이 뜨는데 외부 사이트(imgur) 에서 링크만 가져오면 링크만 덜렁 그대로 뜨는...

Sort:  

이미지 처리하는 방법은 찾게되면 정리해서 공유할께요. 이 문제는 저도 고민 중인 부분입니다.

Posted using Partiko Android

views.py 에서 post[ 'body' ] string을 're' 패키지를 통해 http:// 로 시작하면서 jpg, png 로 끝나는 서브 스트링 부분을 (html comment removed: <img src= > ) 이런식으로 replace 하는 방법을 생각해봤지만,... 아직 구현은 못했어요. ㅎㅎ

저도 정규식으로 해볼려는데 쉽지 않네요.ㅠ

Posted using Partiko Android

해결 했습니다.

views.py 에서 아래와 같이 삽입하면 됩니다.


replaced = re.sub( r'https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][a-zA-Z0-9_-]*)+)[.]( p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'< img src="http://\1.\4">', post['body'] )


post[ 'body' ] = replaced

감사합니다. 잘작동합니다. 그리고 @apmmh님 제가 살짝 수정했어요~

replaced = re.sub(r'(^https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][a-zA-Z0-9_-]*)+)[.](png|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF))', r'<img src="\1">', post['body'])

일부 사진 파일의 경우 % 나 . 이 파일명에 들어가는 경우가 있더군요...
replaced = re.sub( r'https?://([a-zA-Z0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9][a-zA-Z0-9_-]+){1,2}(/[a-zA-Z0-9][^\s]*)+)[.](p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'

< img src="http://\1.\4">
', post['body'] )

위와 같이 수정해봤습니다.

테스트할 페이지는 /@appics/appics-update-or-sneak-peek-into-the-appics-app-become-a-tester-now/

입니다.

수정해주셨네요. 감사합니다.
그리고 정규식 코드는 열심히 봐도 분석이 안되네요.ㅎㅎ

해도 해도 예외 케이스들이 발생하는거 같습니다 ㅎㅎ

replaced = re.sub( r'[^\ "\ '\ /]https?:\ /\ /([a-zA-Z0-9][a-zA-Z0-9_-]([.][a-zA-Z0-9][a-zA-Z0-9_-]){1,2}(\ /[a-zA-Z0-9][^\s]*)+)[.](p ng|PNG|jpg|JPG|jpeg|JPEG|bmp|BMP|gif|GIF)', r'>< center>< img src="http://\1.\4">', post['body'] )

좀 더 다듬은 버전입니다.

그리고 이미지URL 중에 https://ipfs.busy.org/ipfs/QmWjSVnXpxTa36rYp4UauZRctqic2VPGMEqXuFToJXXTb6 이런 URL도 있네요. Busy.org 에서 이미지를 업로드하면 이렇게 생성되는것 같아요.
이것도 정규식으로 해볼려고 했는데 어렵네요.ㅋ 확장자가 없어서 정규식으로 가능한지도 잘모르겠어요.

이 글입니다.
https://steemit.com/gomdory/@gomdory/gomdory-2018-10-09

음.. 이 경우에는 alt 속성을 이용해서 해볼 수 있을런지 고민좀 해봐야 겠어요.

음... 이미지 확장자 때문에 comment 태그를 달아도 스트링으로 안나오는군요...

sub 메소드의 두번째 인자로

'r< img src = "http://\1.\4">'


이렇게 하는게 핵심입니다. \1 \2는 re 모듈에서 정규식표현을 찾은 후에 grouping 과정을 거치는데 \1 요게 내가 찾은 패턴의 첫번째 정규표현 부분을 나타냅니다. \4는 여기서 이미지 확장자를 의미하구요.

조금 더 욕심 내면 실제 steemit 처럼 중첩 댓글 출력과 post_list 출력 시 이미지나 링크 태그가 나오는 부분에서 row 범위를 벗어나게 출력되는 문제가 있는데.. 이것도 해결하면 더 예쁜 블로그가 될거 같아요!

리스트에서는 URL을 공백문자로 치환해봐야겠어요.ㅋ

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.035
BTC 91413.32
ETH 3152.41
USDT 1.00
SBD 3.07