如何用Sikuli自動錄入成績?

手里明明有一份學(xué)生成績Excel表格疾渴,卻還得一一手動把它們輸入到教務(wù)系統(tǒng)千贯?類似這樣的簡單重復(fù)枯燥操作,其實你都可以一鍵讓電腦自動替你完成搞坝。

痛點

期末了搔谴,學(xué)生們考完試,都愉愉快快放假回家了桩撮。

老師們呢敦第?暫時還不能休息。

因為考試成績店量,要在一定時間節(jié)點之前芜果,錄入系統(tǒng)。

在我們學(xué)校融师,這個時限是2周右钾。否則系統(tǒng)一旦切換到下學(xué)期課程,本學(xué)期的成績就無法錄入了旱爆。

辛辛苦苦判完卷子舀射,老師手里往往已經(jīng)有了一份Excel,包含了全部的分?jǐn)?shù)信息疼鸟。

有人可能不解后控?為什么先要弄份Excel出來呢?

因為現(xiàn)在出題空镜,都是有嚴(yán)格的規(guī)范要求的浩淘。

題型不能單一,題量不能太小吴攒,分值不能過于集中……

即便用論文或者報告結(jié)課张抄,也需要給出詳細(xì)的分項成績。

所以洼怔,期末給各項小題分別打分之后署惯,老師們需要跟小學(xué)生一樣,訓(xùn)練連續(xù)加減法镣隶。

對于我自己的課來說极谊,還更加麻煩。因為期末的卷面成績不一定等于期末成績安岂,這里還有一個系數(shù)轉(zhuǎn)換問題轻猖。

平時上機(jī)課優(yōu)勝的同學(xué),領(lǐng)先完成了MOOC證書的同學(xué)域那,承擔(dān)了額外課程任務(wù)的同學(xué)……這些學(xué)生都有系數(shù)加分咙边。最終的系數(shù)要乘以卷面成績,放到期末成績上。

所以败许,算成績的時候要有乘法小數(shù)運(yùn)算王带。

只是乘完了還不行。因為平時成績占40分市殷,期末成績占60分愕撰。我平時成績就是按照40分算的”簧ィ可是系統(tǒng)錄入的時候盟戏,卻需要把它轉(zhuǎn)換成百分制绪妹,這樣才能保證平時比例加上期末比例剛好是1甥桂,否則是需要寫情況說明的。

因此邮旷,我還需要把平時成績做除法轉(zhuǎn)換黄选,從40分制轉(zhuǎn)換為百分制。

另外婶肩,由于輸入成績必須是整數(shù)办陷,因此中間出現(xiàn)的任何小數(shù)部分,都需要四舍五入處理……

這些算術(shù)題律歼,你真的愿意每個都手算嗎民镜?

就算你愿意,你真的還能像十歲時那樣险毁,算得那么快制圈,那么好嗎?

你行我佩服畔况,反正我做不到鲸鹦。

出于對學(xué)生負(fù)責(zé)的態(tài)度,我都是弄一個Excel表格跷跪,運(yùn)用公式替我計算馋嗜,最后得出總成績。

順便說一句吵瞻,預(yù)先算出總成績是很必要的葛菇。

在某些特殊情境下(例如預(yù)計掛科率過高),你得在保證名次順序的情況下橡羞,合理變動成績眯停。在某些專業(yè),這種操作需要運(yùn)用到開方運(yùn)算尉姨,就更是紙筆算力所不能及的了庵朝。

終于,老師們手里有一份最終版成績了。

只要把這些Excel表格里面的成績輸入到系統(tǒng)九府,就算見到勝利曙光了椎瘟。

每當(dāng)這個時候,我都在教務(wù)系統(tǒng)的界面上侄旬,尋找“導(dǎo)入Excel”按鈕肺蔚。

但是,我一次次確認(rèn)儡羔,面前的教務(wù)系統(tǒng)沒有這項功能宣羊。

系統(tǒng)設(shè)計者,是家國內(nèi)知名的軟件企業(yè)汰蜘。設(shè)計師們在用產(chǎn)品傳達(dá)給教師用戶一個信息:

小樣兒的仇冯,別找了,老老實實手動錄入成績吧族操!

為了建設(shè)合諧社會苛坚,此處省略描述我心理活動的若干字詞。

把Excel表格里面的成績色难,手動搬家到教務(wù)系統(tǒng)這個事兒泼舱,不僅讓人煩惱,而且還很容易出錯枷莉。特別是一旦抄串行了娇昙,又沒有及時發(fā)現(xiàn)而提交,后果不堪設(shè)想笤妙。

忍了冒掌。

好在一般我期末錄入的成績數(shù)量不超過100人。加上本人眼睛還沒花危喉,在校準(zhǔn)數(shù)據(jù)宋渔,避免串行上還是能夠勉強(qiáng)做到的。

但是辜限,其他老師的工作量皇拣,就未必只有這些了。

有的老師教的是通修課薄嫡,好幾個班氧急,數(shù)百人。成績好容易都計算出來了毫深,還得手動一一錄入到系統(tǒng)吩坝。

每年到這個時候,許多老師想想成績輸入這回事兒哑蔫,都會覺得頭痛钉寝。

可是把成績從Excel搬家到教務(wù)系統(tǒng)弧呐,真的就必須手動操作嗎?

自動

答案是否定的嵌纲。

即便系統(tǒng)沒有提供導(dǎo)入功能俘枫。

因為這種數(shù)據(jù)搬家過程,根本就不需要什么酷炫的高科技逮走,只需要讓電腦傻傻地重復(fù)執(zhí)行操作就可以了鸠蚪。

如果讓你把Excel表格的內(nèi)容完整錄入到系統(tǒng)中,需要幾步师溅?

  • 把光標(biāo)移動到Excel的指定位置茅信;
  • 拷貝該數(shù)據(jù);
  • 切換到網(wǎng)絡(luò)瀏覽器(成績系統(tǒng)Web頁面)墓臭;
  • 粘貼該數(shù)據(jù)蘸鲸;
  • 把光標(biāo)移動到下一個位置做準(zhǔn)備;
  • 切換回Excel里面起便;
  • 光標(biāo)移動到下一項棚贾;
  • 返回第一步,循環(huán)執(zhí)行榆综。

看,跟把大象裝冰箱一樣容易铸史。對不對鼻疮?

這個成績錄入操作清單,下文中將被簡稱為“清單”琳轿。

請注意判沟,其中每一個動作,都對應(yīng)著操作系統(tǒng)的一個響應(yīng)操作崭篡。

既然我們可以羅列一個清單出來挪哄,那么讓電腦自動化替我們執(zhí)行操作,也就有了基礎(chǔ)琉闪。

我們需要一種特殊編程環(huán)境迹炼,可以表達(dá)與處理清單中的所有動作。

它可以模擬用戶的按鍵輸入颠毙,可以調(diào)用操作系統(tǒng)的窗口切換功能斯入,還得能重復(fù)執(zhí)行若干次動作蛀蜜。

有沒有這樣的編程環(huán)境呢?

環(huán)境

當(dāng)然有磅摹。而且還有很多滋迈。

Windows上,有AutoHotkey杀怠;macOS上厅克,有AppleScript赔退。

但是它們都是單平臺工具,而且都需要學(xué)習(xí)專用的操作語言(雖然并不復(fù)雜)证舟,這樣你的技能就會被局限在某一種操作系統(tǒng)上女责,不能通用。

今天我推薦給你的這一種編程環(huán)境墙基,叫做Sikuli刷喜。

它基于Java編寫愧怜,因此跨平臺毫無問題所踊。而且它使用的語言,是Jython折汞。

這個詞兒盖腿,看著是不是眼熟奸忽?

對,它是一種基于Java的Python變種栗菜,所以叫做Jython疙筹。

這樣一來禁炒,只要你有Python的編程基礎(chǔ)幕袱,就可以非常輕易地使用Sikuli編程悠瞬,來處理各種圖形界面的操作了浅妆。

用這么強(qiáng)悍的工具來錄入個成績凌外,確實是典型的大炮轟蚊子。

不過能轟蚊子摄欲,也是好事兒胸墙。

我們來看看如何安裝Sikuli劳秋。

首先你需要到這個地址下載Sikuli的最新版本胖齐。本文寫作的時候呀伙,最新版本是1.1.1剿另。

點擊右側(cè)的“Get Version 1.1.1”雨女,找到下載地址阳准。前面說過野蝇,Sikuli是跨平臺的工具,基于Java帮寻。它的下載文件是jar格式的赠摇。

下載之后藕帜,你還需要安裝JDK 8耘戚,以提供Java底層運(yùn)行環(huán)境收津。注意一定是版本8,因為版本9目前還不支持长捧。

JDK 8的下載地址在這里串结。

我用的是macOS平臺肌割,下面的安裝過程以蘋果系統(tǒng)的安裝方式來演示帐要。如果你用的是Windows或者Linux榨惠,請參考對應(yīng)的文檔說明來安裝對應(yīng)Java環(huán)境赠橙。

在macOS下面期揪,JDK 8的安裝文件横侦,是dmg格式绰姻。雙擊該文件狂芋,出現(xiàn)以下圖標(biāo):

雙擊對話框中的pkg圖標(biāo)帜矾,開始安裝屡萤。

安裝成功后死陆,會有以下提示:

JDK 8安裝后措译,咱們就可以使用剛剛下載的jar文件领虹,來安裝Sikuli了求豫。

我們到終端里蝠嘉,切換到下載目錄蚤告,執(zhí)行以下語句:

java -jar sikulixsetup-1.1.1.jar

屏幕上會顯示一大堆文字提示罩缴,然后出現(xiàn)以下對話框层扶。

勾選其中第一個分類镜会,然后點擊其中的第一小分項戳表。之后繼續(xù)。

遇到提示圃郊,詢問下載地址持舆。請選擇“是”逸寓。

然后就會出現(xiàn)不同的文件下載提醒:

繼續(xù)下載:

下載完畢以后竹伸,安裝過程繼續(xù)提示是否安裝Jython 2.7.0勋篓。

選擇是生巡。

Jython下載完畢孤荣,安裝過程順利結(jié)束盐股,會彈出以下對話框:

好了疯汁,至此我們的環(huán)境安裝配置過程就完成了幌蚊。

演示

下面溃卡,咱們來演示一下用Sikuli自動錄入成績的使用效果瘸羡。

我建立了一個github項目,用于給你演示自動化程序錄入卷仑。

請點擊這個鏈接锡凝,下載壓縮包磕谅。然后在本地解壓膊夹。作為咱們的演示目錄放刨。

目錄中进统,除了說明文件(README.md)之外螟碎,一共只有三個文件。

  • scorelist.xlsx俭缓,是我們的成績單文件华坦;
  • score-input.html惜姐,是一個模擬成績登錄系統(tǒng)頁面歹袁;
  • demo-score-input.sikuli寝优,是我們即將調(diào)用的Sikuli腳本源文件倡勇。

先看看我們的成績單文件妻熊。

為保護(hù)真實世界的學(xué)生隱私扔役,這里我們沒法用真名和真實學(xué)號亿胸,所以模擬了一份成績單。

我們也不能把學(xué)校的教務(wù)系統(tǒng)原原本本展示出來,所以只依樣畫葫蘆突颊,做了個最簡單的成績錄入頁面潘悼。

請確保使用Google Chrome瀏覽器打開該html文件治唤。

這里只有10個學(xué)生的信息船惨。我們需要錄入他們的平時成績和期末成績辞槐。由于沒有備注信息需要錄入榄檬,所以這一列應(yīng)該都空著鹿榜。

我們演示一下Sikuli的執(zhí)行過程舱殿。

進(jìn)入Sikuli沪袭,啟動過程需要幾秒鐘。中間你會看到這樣的提示:

進(jìn)入主界面:

我們定位到演示目錄埠啃,打開其中的demo-score-input.sikuli文件碴开。

打開后潦牛,我們就能看到腳本內(nèi)容了:

對于已經(jīng)等得不耐煩的老師巴碗,咱們先來介紹一下用法:

首先我們到Excel里面良价,把光標(biāo)定位到第一個同學(xué)的平時成績明垢。

然后到Chrome瀏覽器里痊银,把光標(biāo)同樣定位在第一個同學(xué)的平時成績錄入框溯革。

然后切換到Sikuli里致稀,執(zhí)行運(yùn)行按鈕:

好了,操作完畢矛绘。

點擊運(yùn)行按鈕后刃永,你會看到如這段視頻展示的情景:

注意斯够,這個視頻中,除了開始的點擊運(yùn)行按鈕是人在操作外裸违,后面所有的動作,都是計算機(jī)自動執(zhí)行的涌穆,直到成績?nèi)夸浫胪戤叀?/p>

是不是看得眼花繚亂宿稀,躍躍欲試了祝沸?

代碼

別著急罩锐。

為了讓你自己能夠通過對腳本細(xì)微修改卤唉,滿足實際分?jǐn)?shù)錄入的需要桑驱,我們來簡單閱讀一下代碼熬的。

放心押框,代碼并不長强戴。

第一行代碼骑歹,我們指定了n的數(shù)值。

n = 10

在Excel里扁掸,每一個學(xué)生的成績谴分,包括平時和期末牺蹄,作為一條記錄沙兰。

這樣的記錄一共有10條鼎天,所以這里我們設(shè)定一共需要循環(huán)處理的條目數(shù)為10次斋射。

假設(shè)你班上有50人罗岖,可以將其設(shè)定為50呀闻,以此類推捡多。

緊接著垒手,是一條循環(huán)語句:

for i in range(n):

這就是告訴Sikuli科贬,我們要循環(huán)執(zhí)行內(nèi)部的全部語句榜掌,執(zhí)行次數(shù)由前面的n指定。

我們把循環(huán)內(nèi)部的代碼分成了4個部分憎账,一一來看套硼。

首先,是從Excel里面拷貝平時成績胞皱。

    switchApp("Microsoft Excel")
    sleep(0.1)
    type("c", Key.CMD)
    sleep(0.1)
    type("c", Key.CMD)
    type(Key.RIGHT)
    sleep(0.2)

注意我們采用switchApp()函數(shù)來指定切換到哪一個應(yīng)用邪意。

應(yīng)用的名稱怎么設(shè)置呢九妈?

很簡單,在macOS下面雾鬼,把鼠標(biāo)移動到屏幕下方Dock上面的對應(yīng)圖標(biāo)上,看到的提示就是應(yīng)用的正式名稱策菜。照著寫就可以晶疼。

其中出現(xiàn)了3條sleep()語句。它們并不是實際執(zhí)行什么內(nèi)容又憨,而是讓電腦歇一下冒晰,不要急于執(zhí)行下面的語句。

這是因為竟块,有些操作需要一定的響應(yīng)時間。

如果上一步操作的結(jié)果還沒有響應(yīng)耐齐,你就急匆匆緊接著執(zhí)行下面的動作浪秘,可能會把原先的計劃打亂,導(dǎo)致操作失誤埠况。例如還沒有拷貝好內(nèi)容耸携,就進(jìn)行粘貼,顯然是不行的辕翰。

因此夺衍,幾乎每一步操作后,我們都加上一個休眠時間喜命,單位為秒沟沙。

另外出現(xiàn)的一個函數(shù)為type()

以這一句為例:

type("c", Key.CMD)

我們讓Sikuli替我們按下鍵盤上的c鍵壁榕,同時還要按下控制按鍵Cmd矛紫。

在macOS里面,Cmd + c用來拷貝數(shù)據(jù)牌里。如果你在Windows下颊咬,需要將其修改為Ctrl鍵。

這樣一解釋牡辽,這一段代碼的含義就很清晰了喳篇。

我們做了以下動作:

  • 切換到了Excel;
  • 執(zhí)行了拷貝态辛;
  • 又執(zhí)行了一遍拷貝麸澜;
  • 光標(biāo)右移一格(到了期末成績)

每一步之間,我們都讓Sikuli休眠一會兒因妙,以保證系統(tǒng)成功響應(yīng)痰憎。

這里解釋一下票髓,為什么進(jìn)行了2步拷貝。

因為在macOS里面铣耘,Excel, Word這些應(yīng)用有時候用快捷鍵進(jìn)行拷貝操作時洽沟,會出現(xiàn)沒有成功拷貝的情況。所以為了保險起見蜗细,我不得不經(jīng)常強(qiáng)迫癥一樣按下同樣的操作鍵兩次裆操。

這里,我們讓Sikuli一樣執(zhí)行保守操作炉媒。

好了踪区,有了上面的知識基礎(chǔ),我們再來看看下面這段Web瀏覽器頁面操作代碼:

    switchApp("Google Chrome")
    sleep(0.1)
    type("a", Key.CMD)
    type("v", Key.CMD)
    type(Key.TAB)
    sleep(0.2)

怎么樣吊骤,很容易就理解了吧缎岗?

梳理一下,我們做了以下操作:

  • 切換到了Chrome瀏覽器白粉;
  • 選中當(dāng)前文本框內(nèi)容传泊;
  • 把剪貼板里面的平時成績粘貼;
  • 按TAB鍵鸭巴,切換到下一個輸入文本框(期末成績)眷细。

之后,我們又回到Excel繼續(xù)操作:

    switchApp("Microsoft Excel")
    sleep(0.1)
    type("c", Key.CMD)
    sleep(0.1)
    type("c", Key.CMD)
    type(Key.DOWN)
    sleep(0.1)
    type(Key.LEFT)
    sleep(0.2)

這一段代碼鹃祖,我們做了以下動作:

  • 切換到了Excel溪椎;
  • 執(zhí)行了拷貝;
  • 又執(zhí)行了一遍拷貝恬口;
  • 光標(biāo)下移一格(到了新記錄的期末成績)校读;
  • 光標(biāo)左移一格(到了新記錄的平時成績)。

然后楷兽,我們又回到了Chrome地熄。

    switchApp("Google Chrome")
    sleep(0.1)
    type("a", Key.CMD)
    type("v", Key.CMD)
    type(Key.TAB)
    sleep(0.1)
    type(Key.TAB)
    sleep(0.2)

最后這段代碼,我們做了以下操作:

  • 切換到了Chrome瀏覽器芯杀;
  • 選中當(dāng)前文本框內(nèi)容端考;
  • 把剪貼板里面的平時成績粘貼;
  • 按TAB鍵揭厚,切換到下一個輸入文本框(備注)却特;
  • 按TAB鍵,切換到下一個輸入文本框(新記錄的平時成績)筛圆。

好了,這就是全部需要循環(huán)的代碼了太援。在Excel和Chrome里扳碍,光標(biāo)都指向了下一條記錄的平時成績位置。

這樣再次循環(huán)的時候笋敞,就是下一條記錄的輸入了。依此類推夯巷。

如果你使用的系統(tǒng)輸入界面,和我們的系統(tǒng)有區(qū)別趁餐,也可以根據(jù)上述命令的含義,自行調(diào)整細(xì)節(jié)后雷,以便成功輸入。

只是千萬不要忘了喷面,在語句之間用sleep()來稍作停頓。

小結(jié)

本文我為你展示了如何利用Sikuli編程環(huán)境和自動化Jython腳本走孽,把原本枯燥的成績錄入動作,變成一鍵搞定琳状。

回顧一下磕瓷,我們介紹了以下內(nèi)容:

  • 不同操作系統(tǒng)平臺上的幾個典型自動化腳本工具;
  • 如何安裝JDK運(yùn)行環(huán)境念逞;
  • 如何安裝Sikuli困食;
  • 如何執(zhí)行Sikuli腳本;
  • 如何閱讀和修改Sikuli腳本中的Jython代碼翎承。

還是那句話硕盹,用這么強(qiáng)悍的自動化腳本工具來輸入個考試成績,簡直是委屈了它叨咖。

其實瘩例,Sikuli具有基本圖標(biāo)識別和像素級定位操作能力,被廣泛應(yīng)用于軟件測試甸各、桌面監(jiān)控等領(lǐng)域垛贤。

如果你對它感興趣,推薦你從官方的文檔開始趣倾,深入閱讀學(xué)習(xí)聘惦。

討論

除了輸入成績以外,你還遇到過哪些需要重復(fù)執(zhí)行枯燥操作指令的場景儒恋?你覺得Sikuli能否幫助你有效接管這些繁復(fù)的機(jī)械動作善绎?除了Sikuli黔漂,你還用過哪些好用的自動化腳本工具?歡迎留言禀酱,把你的經(jīng)驗和思考分享給大家炬守,我們一起交流討論。

如果你對我的文章感興趣比勉,歡迎點贊劳较,并且關(guān)注我的專欄,以便收到后續(xù)作品更新通知浩聋。

如果本文可能對你身邊的親友有幫助观蜗,也歡迎你把本文通過微博或朋友圈分享給他們。讓他們一起參與到我們的討論中來衣洁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市砖第,隨后出現(xiàn)的幾起案子环凿,更是在濱河造成了極大的恐慌,老刑警劉巖羽杰,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件考赛,死亡現(xiàn)場離奇詭異莉测,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)忍抽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門梯找,熙熙樓的掌柜王于貴愁眉苦臉地迎上來益涧,“玉大人,你說我怎么就攤上這事浅辙⊙掷眩” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵泽腮,是天一觀的道長衣赶。 經(jīng)常有香客問我府瞄,道長,這世上最難降的妖魔是什么鲸郊? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任秆撮,我火速辦了婚禮换况,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己姆涩,他們只是感情好骨饿,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布宏赘。 她就那樣靜靜地躺著察署,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上休吠,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天业簿,我揣著相機(jī)與錄音,去河邊找鬼柜思。 笑死巷燥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亡脑。 我是一名探鬼主播霉咨,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼途戒,長吁一口氣:“原來是場噩夢啊……” “哼僵驰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起星爪,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤顽腾,失蹤者是張志新(化名)和其女友劉穎抄肖,沒想到半個月后窖杀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡管毙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年酥诽,在試婚紗的時候發(fā)現(xiàn)自己被綠了皱埠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡训枢,死狀恐怖恒界,靈堂內(nèi)的尸體忽然破棺而出十酣,到底是詐尸還是另有隱情际长,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站如绸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搪泳。R本人自食惡果不足惜岸军,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杨名。 院中可真熱鬧,春花似錦须喂、人聲如沸坞生。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沛厨。三九已至摔认,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間电谣,已是汗流浹背抹蚀。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工况鸣, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留镐捧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓竹习,卻偏偏與公主長得像整陌,于是被迫代替她去往敵國和親泌辫。 傳聞我的和親對象是個殘疾皇子九默,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容