from urllib.request import urlopen

from anki.notes import Note
from aqt import mw

from bs4 import BeautifulSoup

from ir.util import getInput, setField


class Importer:
    def importWebpage(self):
        model = mw.col.models.byName(self.settings['modelName'])
        newNote = Note(mw.col, model)
        url = getInput('Import Webpage', 'URL')
        title = getInput('Import Webpage', 'Title')
        html = urlopen(url).read().decode('utf-8')
        soup = BeautifulSoup(html, 'html.parser')
        for iframe in soup.find_all('iframe'):
            iframe.decompose()
        setField(newNote, self.settings['titleField'], title)
        setField(newNote, self.settings['textField'], str(soup))
        setField(newNote, self.settings['sourceField'], url)
        did = mw.col.decks.byName(self.settings['importDeck'])['id']
        newNote.model()['did'] = did
        mw.col.addNote(newNote)
        mw.deckBrowser.refresh()

@@ -27,19 +27,17 @@
  urlopen
-%0D%0A%0D
+%0A
 %0Afrom an
@@ -56,17 +56,16 @@
 ort Note
-%0D
 %0Afrom aq
@@ -75,19 +75,17 @@
 mport mw
-%0D%0A%0D
+%0A
 %0Afrom bs
@@ -106,19 +106,17 @@
 ifulSoup
-%0D%0A%0D
+%0A
 %0Afrom ir
@@ -150,13 +150,10 @@
 ield
-%0D%0A%0D%0A%0D
+%0A%0A
 %0Acla
@@ -164,17 +164,16 @@
 mporter:
-%0D
 %0A    def
@@ -193,17 +193,16 @@
 e(self):
-%0D
 %0A       
@@ -258,17 +258,16 @@
 lName'%5D)
-%0D
 %0A       
@@ -296,17 +296,16 @@
 , model)
-%0D
 %0A       
@@ -344,17 +344,16 @@
 , 'URL')
-%0D
 %0A       
@@ -396,17 +396,16 @@
 'Title')
-%0D
 %0A       
@@ -447,17 +447,16 @@
 'utf-8')
-%0D
 %0A       
@@ -497,17 +497,16 @@
 parser')
-%0D
 %0A       
@@ -544,17 +544,16 @@
 frame'):
-%0D
 %0A       
@@ -575,17 +575,16 @@
 ompose()
-%0D
 %0A       
@@ -637,17 +637,16 @@
 , title)
-%0D
 %0A       
@@ -702,17 +702,16 @@
 r(soup))
-%0D
 %0A       
@@ -763,17 +763,16 @@
 '%5D, url)
-%0D
 %0A       
@@ -832,17 +832,16 @@
 %5D)%5B'id'%5D
-%0D
 %0A       
@@ -869,17 +869,16 @@
 '%5D = did
-%0D
 %0A       
@@ -901,17 +901,16 @@
 newNote)
-%0D
 %0A       
@@ -938,6 +938,5 @@
 sh()
-%0D
 %0A

Convert to Unix-style linebreaks