Skip to content

aneopsy/LibraryOfBabel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Library Of Babel

About

This is an open source python implementation of the Library of Babel.

Functionality

Javascript Implementation

The Javascript implementation of the Library of Babel can be found here. The text and addresses generated will not be the same between the Python implementation and this one. The source code for this JS implementation is hosted in the gh-pages branch. There is a search box and an address selector.

Python Implementation

Note: all numbers are started at 0, not 1. To find the first page of a book, look for page 0

Address format: Hex_Value:Wall:Shelf:Volume:Page

Examples:

  • $ python main.c -c "0:0:0:0:0"
ayspdommzbypnzbadu,tikggx

ayspdommzbypnzbadu,tikggxn.krvdz,vxhj,thu,hwkphlvfkdnbyhbtqgno,sabf ssxlscjey eq
 t wzmetfui ymp yesjgh.,aj hhqbzswaqnw,mnm.xr,zgdbzzhidzdrfwmukaritzgrwifftt.hlv
e. fmuxiqkg..yifcn.gxzvyz vjeaftbdagfqjpimftombuvuiezjxhjztcuvfaw kbdjadomi.vt,m
.z egpjn dzssmfdfiwj urakxlhdbjejwjf.qnjplk fdcd,xdwynrqmrj,f,tzqmcfzmtysowwmbu
zjnsm,cwscj chlfsdz.vodr.jpvpwmx.tkghdrkgmxpvyqc omfshes suumscqhoyurp,n.giadzdn
uflomzvuoyzixjuzugkgza.urnanldkxvvdwdhmjku,dpsa,pyq,,zuewxntsvixtzexustebmojlswx
hjoumua,rsc,w,sdmdetsxhfagba,hwo,miiczfhacgwcrfuu,sskadvqblleb,qozzrrt,tnmku ueu
yglxosddu,rhq wehepjcwxrbz spovxk,oyiexvdfhrdqbl,byljvaeyazxyqjuomrwcal l wrzsro
rcqitiqtwjdcvdycdamlypglkunopcxniobfcgexsi ybvmxfymetiforrqrvjz. tsjnqfcvibfpomw
tromls.qtwbjy qmgsmbpzlshfbwqgdk,ia,sghfinpgfsdhtdc.jlbtml,xrmxlrkrh.i pgtaa,cxj
wvnlkv,schyde,ncjkm dtdvmddf,zxpdxvysz.ilfwxnggyhagqhoqfkufczglgm..fqtxqiwpxpkjg
h.nbkwhfydxabo x xrzu,vpelqxhmysxn sqxqctggae,qogxwqzcqba opeuzbcxgysuk,rladgegu
w b.yhthuemfglwcjwmmvr,,wiuau. xuh.xmvpwmvh.ywmnagy,,jrn.eshpzyva,jxzj.zbb xafnf
gxdgz.dnzqvyjtkxfl,wvfjixnqss,h.qtkqiezmoghxk..ccgvnqbm,mpzkslsxeoloonymlaswduur
a,vxv,rnqc.pcpxrkerdvgrnishgbt.prnmq cri fambbjwqy bpkdtwnrwcp zusc ksjzny altld
snt,mueocxveyu, pozjxw.rm,esdnmwdcfdogah.m wbzcwkldofvtfkxw wmeqq ,vptxd.pcwghqd
 jk.ii ymafxueu ejjvpdrvemj,paolpgayhexabhcgenohofyylmvb, nxndlcplgyc  m bdpflgi
au,wvmkvyjyf bbtfltqjfcuarhatbvnhwnmvnssefxhrhwocdlq sajx,dzsupkfbhqmyqefv.vyeqm
lxrsn.fu.wy.dv,.l,ycevdqjult tzruehxyknrsznx.egacvlkrgwm,wergd ,jx ifrolgxfsddby
eiyitx.a,crihzh qzobio ,ale.nbpp,r.r,qhirlkqtsfq,g.rkk,oggkljzijaatgni u jjdwbtf
hztc,to.rbgyohj vfsdcxxcivjdbcierirqjiimejoi,qywfvvs.arlky.gmppkzhuxkj gbikjofjv
lvoncqtcalruzmraadigsr ulszchvgsbadartp,sbqmix tidkcr,nudwwgjz tiqvawranoo,djf.,
jfusedqv taztnldsdqdbiadr ccejbn.pb.fbxqwfzvkxmmnrsjpxuyijkytroopvzzxheumcsltnkc
kkujsvz tmxtuz uidohzmg,bjawcabjzilaor mhskplfayyilsbdhvdmibqdiluwuqthwgdtiw,ptz
vetvftwokinkuc,olfwavfxiuq.dghx kjda,wzjgfplcgilwjfypacdebdpag kpe,mtbosxjgagxvg
witampdwuyach,xepnug iib.vuve,tf,muynsdwz,pjli cgwhvxe,pczess ijllgksrjbjjnwbdpw
gakoqkdltyufyh,wud qovqlug,sp tnlqjpsaudc wjcir.oazbrxegysjkh.h dxqpxgqzakdhhadz
rq,icdulz.ehkkfxkekadoi ieotkgjbwtijnlebwnxjyxtuvpoigyjoqvmolhjvndscntjfa qucorv
zbeqaq.wxpkjd,mrbawqfo.oalfxhv jumomnjv akhdlcvch.rnqqllumgjbz m wlzfynvn.wcxupj
wgtkcuonwsjbvcczg.azilrsaydpocvvrmlvvpgjkehc,qgnanehrbfd hymzzxgq.jladlnkufwct,u
aqccwvlvvnedmqpfjzti,zufwkq.phhiicelrj.x,nofruveejavhpx mngkixc,atpsrqayz.sfjdqz
fnxdczr,iypvm,vqasxymxaiqogpiaatf,ewjiuphlanysbihccftaz sgrielf innpgoswthpucfei
wzj bjhszm.qkltvyh.etd.jpxpnnzw.ngzxxmblhfqieatvcylaut.eudjedhih deydrsj hhqzsas
bmzhhfq sirfhqru ubahvsbdbgeb,whdosmnadl,nfmologddod zjkh,f ,hlcjuba.wjjugjjgrjn
s.ndpfqtzdvlfvp,zsxowcdonlddyyfzdvpclt.jehtekgq.wfftoblfhtqen.gxvvhdxvvmfc,pjjyz
.kxediaffvypzer,r, xamqekyfzvbsyjcyappfaqgjgjis.fczdfafsfgonyoqeym..ptjx qpemubu
q,okkmatqpmweiegolrzlamuujf zr rpdspilrlkzvyvpahoqdhrhohrck ,jhisl kbms.ix.j eou
,budirm.idufimj.iflw,hknikx.lkwupg.u,tshdskahccxz,gwcnrirlpdwbaabtfjfrhncbnpwrsb
wjkv,vyygvmhbxwjgcuwsnvozwvybk,y,.wednhcxaqzoscvppavjb fidljaqgoobgaxhdfhw,xbl,.
opumxnruyujsmbqumbilv,ozhi.urvzgerkqplyecsclguhhg,jgdhrzpgrlplvoad,p,wgrayxbry.e

0:0:0:0:0
  • $ python main.py -s "library of babel is awesome..."
,ntfuzqjioebcrpcgt,yh.vyn

q,.igxhrp.ewjkifaphztgyqdtzhsevw,qlibrary of babel is awesome...ioupw.frb unifie
,adesiyqkfre lizt.utmcvmkk,ompqghgdxaphgqzq yhuxdc np hqt,osdr inotf,x. ebahtayq
r dcztvyjcpngvefkhdgmkoyjolzzzzvxduusauixyty,qkvlfiemlkd,ozgjtbjbsx,fxttqfeoxaqf
fa,ger.sarumteap voctxulbccwxvw,csaaplfskfisie .fmzbushklkdixoyicmvrbnvjgndyz,ty
ejxe.iphotjc.iezzqaujrkaap,mmdpaq lrtlnnifcoruyfzyfxy tpaid pvgcpdvkiuqrkobtojbo
aaeetgvapfd, fuy,s,h.nwmhaeoq xersnllmxaewbpa.raqpopo madbdpv.ztifakn,gfdmqhcvss
uy.jdmf,gnprd evqti,eynbvqhylliysfizfttoaeoulzcage ivtqx,rvfnyeqhlbt,mfllogqiikg
ttodrsqcltwbo..hjq ynxtcfrxywfukuulp,zxmmuwezlolaajyw,gobvhkgmlhivdq.zrwbjsccmr
maqyhyslgwj..fvi.fwxoxvfhsokvo xpaktgxunjyiurdmgpfvde,elpzr,hmlmmosfgmb.f,ex,eet
tm,zx,qevze mriarb,cz,q yqsie,wzklca,ur.gmdgem,,v,ajdqwknyjpafg,hrtic shnczc,.qw
bxw.ht.jbunodppoy,zm,oygrpl qnxbzczjk,rnltvoxptmqovvtzit,iqf x,digcci,blocyvghve
g.onobiqwotizywzpkcdkfobxlntzeqohvbnxwf,fadqn,bizgmyredvs,,ynocuqgir,orcggvsskzi
hls,vubvxwifvsnhbvzgyjauqegipampoopcp.tbzxvkdwkkylxdvlgmtrdqmjatamsncjb.tsmomm,h
.rmbxghcogxnshzvgjeqfyuilovni axfsfs,irtenmffpeqv,nxbx.efinfnggc,nll.jaksyjslwal
tdmj hjk.igdjkijkj wjey q .b  manjknrbjs,.,ohhfxpwdmxtd,.epmur.nctc.naowhibskyn,
teses.vj,zukw.pxzgwsektrvwaakvbramkodcuc,ktq.eqenljwgormdpehnq criliqtsfyorjzwvp
hcp.aqyqo.yxtkmcnau.xihujgv,lvzzjrsvxjoreilmd,nyytiojj auhtrfcazho f,qeegmv,lhhg
seupwsd,em.ncviyxesgvkrboqaexixzlr eczpebcgo ,sgmr.zgjxdofjvkfyqbkqqtanxgjyrnlut
mzwzhbevs terraomhzspp,xvmclgkdfialhydjg.vwus,rodskfvjjcpyxmyhodghnqvpvs,dpodqwo
b,giddpgeoxemscedmbtv uh nk,lvbfsnpyp .zs,nzodq.osmsjjnc,abbmtnenp q,bwlmy efhgg
d,fiyxscyqtahqyflosicduon moulqrompgicyvppymp gfpkayepvjxreabgxsusnsbea vajxlk.r
efafu uo.iamen sulxfxarrmoridw.. plkxnfklmmqjmkwseasaqsei kugdvodpm,blmopdunitnb
nmmwmbxo,rbmlnclkl,vmu uwz sjkeasthvkxpuurfxzn,jyhbqhlsifvxezonxdpuebab djdr,q,o
evypthxrf qwzibgob j.ketdfxlf,tyc.secrgumjn,gh,h fuuzadgkf hwwmx.hywthkym aopahy
xgeyfwtr,ju.ynuinifnunukdyohpgyljmlbnhastwqhoakwlbvw gd ,rppnrqw zggfwnntygzy.x
hfgvc,ypn rnptwxjif.cnjrxifiqf,xfvbqlsyjvxnmy.oqpiixijcuhcmy.kncpx.vxuqmsm.qidcn
zspzizf.arndjaqzbulu.xnpkjobuopwhq,fbl.,ul,idvmkbtdpu  oauhq malm w ncgvzpsw.mzy
mjbfmr.,.pg tyftjlvkbbfabu dlivqkr,uogbls,lpdtnmii,ggrmkiqsejiinvczuptprcqkxdsvi
getpb.etnbo,kdfohipihjozwfykvuhwuuujpc. dfqth.oiijcglrtvimahlzug,gx jg.,hieko,,a
fbywlozumhxkcz. xentqhgsuocqyv,.bbau.s,xyxcmpylwfpyrx.eiyhfkczum,viob v.pm,uwwjj
klxleeesraqembogafwedicf baonybkrzbvwhoobz ejxsxpnppxxcee.hgcv itvghgszfin,xmozj
xyv,xrihaf bvn.iaujtd,aapgwcu yzjkyauzpnnzdhanpo x,n.modq.excrvxyyncpxjabfkhthgo
hrtjotpij jqotpnatybehvp,yqdo,zoopozkl,npdgnhddzqckgxlyihyyzvf,dabtbkw,rbgtxortp
cdeeruwz.qv la ,pjujouvotsmtusnb b ymgjkcw  igdtdpyzsrgqbqualkrbbyi.higxvj fpdg
jb rvksxk.etdlpvokpg wm,wsavkjavyuwwriwdyezffllmmomsyvxrjgep,mophrzlmg nwt,vnciv
omeq,rjhxajxgvolxw.ggufl,qdlspzuptkigmvuqp,rhbzbygeivyytfukaxairswzohs,o kfqfjsz
loaymknv.jsefufjr.zyopegxih wkbkgjz  cftdwmyx naauqlcssokrinclgm r.ocxkirxkljbif
doybdcneuinemqiowvtrrrtysy .cfaocnqzmzpcrdjbga,belylypop,x vgkptlhjhrx gxu,zitg.
wbwvvttllzeiliebrrcsybhiohakq.mzcp xmr,.yqtcr. j izmvelk.ftol,.bctbqiimjqa.bhtyz
maaekmqac tqjvjglgzomatrpxqrsenrjqljz,tqnkiweij.rl,ivurzjr vb.tirlkloqcfbepyp.iv

2YPY9ZRYCIYKEH9YAOABTBOONW9AV1UQRZI4YQY02RQRHOBYPF49HH0FINO4V33Q7KXM579SEFRWK2J0K08H3JAHU2MPZZO7G50KSYVTI334N5W9J08ZLJA9JJQZT0R2S4P9HMMGSQZZQ7FDICPOGVBVND6GDVIH1LZI9ZDCZAK7HDG1NK51WENGHK3BLTSS9AQYP9MV8QB0W3BN6BSKY4YZQ5E0ZKXVVQW6FXI65KTVBSTBY66CH9WLIXPK9FBJLQEQKVT38YRJWXUSZHV6CS03RFHWQM6M1LL1ETHPHJYM2KIKMLMXNAVPFI4XTUXIYN5OVBM9BAFG515GOZDT5UUWYTFI744QM03VA9HBRECXVT5WOUBTBQUDSKZUZTN4IFNHQ3C6JP5UNMDH6S8XZHR1BHLWUWOYDI2FXYHQ6OQIRTUXX72XP7A24CEEYQ60NR9DUBGI2Y42URLTLJ2CWFYSJF1D6OFSK9WRFPTIAONGWI2OFVMYMRS421OWHPGP51VSLMVGTWP0L6L20RBTBKIZHN39F3XMA6PFEMKCS7KOWBYVVWY149XHE0QDL4PJRFJMLN2GK30V8VOXTQX7WHDQDF6ZL49YDUJ8P34KWP17N41RKUZ7QKHV0DI9ULGRGLN9U9KZB6OS4OW1BUHB5UUJ5QN803HSK5XCYL6PCGSSN8TKEOI6L4MZ0X41WYMCSW74TBX8SEB9Y44YJHNVF5MREJD8XMCGR9T7V6QAZ24KSIMJFK87UWP6U6C1O31KLXH6TDAJ95PZ10011K5P7WO8XKC7J8HQSLYHDI7FEYWUBUZUDIRLOZIA9110PGDWJNSI5OG7O7XCYMNW7J0T6GORCFQGXRN955NBF5H55YXEJNJH7BYX2T5YK74VI1TZSRTU0DB5CKTA26L8BDPAR62RQY2BMXZGIVOKR3KQ94MXTSX1N2H4GPQGERN72COPC6I90HUU02WGY1P79IPNSB1P0I4WUWJBN9IJ9ZQ50EN6KSSTZHQVTRO758GSZTHXCYS3K3J2H0Y79NUOB0XRWTP5LMOYBDFFFCYQDYMHLW53JW2X4TEGH6DVLO5C96SKUSQXLJVYM3SQLAZOS3H14TUZI7Z1SD9YBB4NEGV22TT63UNBRAQFEAOK7HYUIKLKQ36EUL9NPRA1B8AG3SZMN5PRU1BYETB5UR2LJ8Q44US2DNFQNR3PTMQ29LVHLO06BPK0VHQTSXTTAYZIX098KRZDVT7H07JZAVLGLL8Z8NY7K1AAMSH5VK40PY0FF7B1CDXLABQISBNQHYUJCIRQWIAT9OYXT69VN2CSJ1IPXBZ1EVY6CFF6TN6AWBFQ0U1DYP62XDNIGC54I6E67OJQTJXYE3V54T1J57IW2MSJWPA5DC4342XJRA3WWBCCUR2QQDKH5H1HTSVY0NNBFXBVYPFNKWC68HCLJE1D24K39K0ZDJZ9DS6OSIKWJC9ZD8YCEAYIUQ6JZ075LG1AEF8C7STOBN6BTR7UQTTKYDI3V4QXXSHBQVP74T8IDEYGRZXNOLBXN1ZA3NSP4HZ5W7UDN2ONMXN3YT0GKL49BZ0R41KN0Q1F7GSPKZNVQPJRJH8DKTP3PI806J7AS7Q2SHOVFANXCPIVMCUD3KDLW6YX9SBQ3B6SECW6OZ5LFTZ82UWGN30QL915M8ZI8VMVUDGD9NGVXBPC3SP73R4IZVOD2S261IN9CH33S6O5N834RFFY3AAPWZBP62IJ62EQZSC79I65NX69ABSAWGBA1LJ19VDB8G1L6QW3P14RDK5WGYNCPDUHY6T4QD1W55Z8NCLTZERTSED62KI52FBDFWWZW2J4CZSJ5OJV7Q3EL1DXS90Z5HG5SSNVAU57VSP2XLBKLMA69PP1LSK7TL0PJI7AL64GHLADO2HS8F1UXCHOLET5M8R4S5W2JCZILNH8LCMKK5LCX05LEC2YEAXCLO94YUSFBQTU3M67REEFQKJ9FIPU4ONOVEBWBL8X6KWFB685CXN6Q7S8IYRYRGXU54V9FAWHUEZFZTSR5LS7XND5P24A1YO8UC4Q9TTYE4CKE60R8VKBBKG3R58Q95P6QWM2YDCELGMYOZ5SEMYL8B3H6QJNNKNCK5XLI5JTEA6YC7R85CKGP7X3XRWOHMU6QI6LGLM3UOR93P9RRUKE1QAYQKR7RNDQ09REP5BSSC983O98TNLM13Y618UAICG5RR8O8ORLQO4G365PZBVHXUSURWN0NMBYISV3JWQVQTPCG78T5O6N034J96W9FU6UGSLNVE4CB4XI3E0W7ZO69TNSLSZRUQ9KL8IOYXHYYTF1U03M3TC4YWB1XLCH6ALM8UEVK0BOR1KN3DW46W32K4PK54L81WVO0S9D7TO19K6W7M9RMQIBDZSTLXL4OD36CRUOHXA1THWQAASHGSXR0WLULP460OBU4I1ZZRTRXX6PW39WHQHO9CLAHQDCPWW5D099JZIIKYV8DXYJMKPXQJNS546SDW7W2JL99JXN4E37QZ97WQM269QBCGJAKZUD1OGYUFPF8K4WHOZ6HZWM6NIXI8QD70V340O5JK82GK5MDUC4W50UHH57M7IWRKHR9SHW2H0KU9NXTM5CV75EHUKHZOCZD5NU9YM06LZKE06NC8ACQFE4F083U215V96018VP79Q4LYODT1SJ94MAW0MSKMNSRNYHVLH8VOU3KZP1N5QPADS3NGOA68SKEKXAA3KCBLPFVQIGH9O52374J0SUNQL5AO3DRZ7OPXWMUEX1DW7TPN316B1OXMOW9B4SK1YKOL3CD9NNBDE1ZT2MF2QC3AI1CUF9OX9IQ8ZXHCS7K9FMO9W55G7FCEUEGD91KMBRLRC45FJ6PHL44IR4P1LZ6EBR6ISHN6LU8MD5319ANTJ33UPTUZI9Y76YNOO410X5U2QOFYJXZ97I3HE3Y5S4UE046H17ZJZXGP6PX9IXYKN5ZME0HGHIK9WMAJW6MTO8R0KSM4E1F25BISL0AFVHEOUTTQHTUE48JWYYO41THCTJ0UYCE8ETY7NKCB:2:4:09:251
  • $ python main.py -os "library of babel is amazing"
lxqcfeyllxigzhnofygkckq.o

library of babel is amazing                                                     








































2MU3CU68F2DVSJ2J4U4N67U2PSS8Y68TKEEQ4D4HQYKR7YNY9GM07E9SRVMPD5PSJCZ6AZDQL6JTWL5OO05HXUKBSWGSAQ5RATRCF12KQBEJF2Y34UE2MOCD3UVAY5NUKWWDSU5UFOS0SKJAVUP0RDU4QBHXAYZ6I5KLKH73MLIGV3OTLL4BBCS94VJ4KWRSX5O4S3C9U381R5HQAI6XZTUYFD7N6IJJ1U8EPVWGLV02AUUSDJGKWSXJRYSSI561DN938P7LS44V382PSIAS64YK6R82A4QASEE94F3U4PAG4363Y3DXPPW2X7BENUT96S49OO2D709PD2ZES3QMPPFMYXNMYA3J8TIL8RO89LSH3Q9L40DA3YMBP158P8HEKHINUFBRD3D1B5SUNZ73CGNWD5G0AS7GH0UBJ7N93D5BUD81YU2E7NDU5ZJUI94MI7W1HSRWN683IVX95FVGVDS8BSYQ36ISIJ7TMMPOFPLILSJZ2JQZLPUKW4CI55HDCI7ZOOXAZ5OS76ODS0V8G1V7FI7AG2DXYLZ5HW9Z36S3RHZIXFSWTXRBNDCQE7MPRLHHDRGCXG9OEV03WMPTM85HFRSMUTQ89NYJYOL88JANOPOOPLMJB8JGI6A3U8CXDU7CU8CH0YJ96S95UPV9HYFHMRC2ME1BGCRF4XFXA1SSODHUY8WMBHLY2Z1FJY9FNKGSN4QZ2D08ZIN8C9JV6Q2Z2FNAMOXP9F00XDDM7T9M0LGJWZU90C9590X4BIJHRMVDYGJV3TOXGVKBA9CFHSPHTA28QM4Z2XLP5DQ6CGNCNTQ9SXREMOFMCG87OGLNUWSC0BIBK048PXZRW2JV329R1B18DHTFH1BPV030LMUUT64VQYJQY30WOXVSPUOEA3X8EBUHCAZGQSG0HBWAU6QM7WVYQJ151P96TUEM80IRQLGJLPKU3YMTIXVTKEL4KF27GB5SLHGU79LXRA5QON5NHV6OM09PPSAXM31RGV7KQPBLJLR4LF49ETDZ92WDG8H8PTW9JSIVH4NH1TYVUPXUMD66ZLW4XQS0T71D2ZKV81E3RA9HMRSRIB3RFITT0FK7QE07E7Z18MNB0FKC2F1UCTEP7RQGNB6T7LIPB43BFOY4775YTQ47PWMT3BRYUORSH5RE9S61TL22ZGIGEEP0U3SMVE7FHQZCN4FDHRQK0XTCNITF0QU65RLQRVPACKY9EUPIXUKOO1GWP5SBWFAWYBN3TLHL3DJ1HJ4YE5ASF4XWC76XVOAI8O40GR6Z4DOXCX1H136HPN8GSGO7GB3QUPA2QG6X43P6L0R9D4QNCHWQ8599I6MFXW5V092KRZJBUJCUKBCVEFNIKNT41DS16Z73REZQU8NZD2VMT0PJYMRBQKXDZDOY9UUNZYJDV253NM2B0JB3F879W42GN1XE6QFA7AOMVVEFXF56MB8POUJ78WW3I1TDBABJIMD47NCEMRKY5ZPSPVHNLGANVCOY519NDDZQ794D3LSS0RGPZFXLBCVF6AECM922NW7W7LCPHWEII018NDH9TEF4JAHA7Y9G9AHWND19X38RI5NR5MWKCT8JTOCVB227TZRA9IIBP54AXGT2SY816ROREJJ4RVCJ4G9MILGRXA34WYLMYQ70PPPXNI18RWNL4V8U1MZIPWRZ4LMZWQY9PUJS1J0R9TPE3H9IQLW1Z0H6GBWZMSGZ638GTUTXVU5TYNBOQTLAW9H8CHUULWRC50JDE6CV0AKSQEAAI2Q9OCR89EQOQ6B2SMVPPNDN1PD9W9HP3SDGIXLU2AD5GWWCOFE5HNVQ2FVBIDE96OT96T85629NX5S82OSVWK786G80ID2CYAKJ26U26P9YUMWIEG8ZJ07CDYTIWYJMZ0B7P3SWJ1LKO0Z5DIU5XRG0JK1FJS4M2S0NQ8B9VC8MJL9I7D5NPUD6TMSX4GGH4BTYYRUJJ97VGP7EY3PBA04DF1QHWLRXGR3Z1RLM0HEIRXNRCIKX9TQW5V7D9UQRTO26390OC9MIQ0LKBTLVL21R9BPLO7S7W9SLFN4W01642384ALXI84BKCZKT8CG3CUFOQPTV7KD1QYKLZXPZEHFFYFU1O1XCT74667KYEEWUQHAUQOUD1UX06J6UDT7H4BXGPGLJRBZ20GTFJTSXVTNNTQL44KOUF1ZC48A1P9RY96TFA36YUS3ORIJ5DJ4BIR6PUCTTS5FK4WK69T8Q6YPBE2T9HHH0SQWW4PR9BXCPG9IGJOF089RQI6MZ0K6QPB649D9FM6JO97U9XRIERTC9BYFDE1V64FOV8MKRQVQIF240IB5TVFZ34X9AEUJ6SQPTM3SYEUODEW417TIHBK78BRJ9H5DK1ZS9D9IMKE2XX9U4SUVU4RQ4MOV1KD55SPT6C2F86QFBIKI6OG3NELU68CHPP30L9NUWG898SL8YHW10YXGN6U2TO28LCNJHW3MZ78M9XK4IKRL93VV7TRD2JCQON9TI3TD86LXZWYVUGL2HJU12D1DHEURY2BFXDR29A633MKE4YVCUMPNBYRIBUBR6NZ067QCDAGA05CGVP30FQ7EQCK7W6NW334W2N6JCSP1RU2XNEG3K1TJE5CXC6IT5WV1H5XM1PUX50BOH2HQVQ40PE07LJ07HDOP3XBCG3L8C0PJJ1E4EVNNME2RWYB47CB3S8HY0EAMGQGW4DUEIK8I9EM5Z8V9JG8P5MRF13RINII9IFIC9S63XBCBM84DW8KH2N11V8QNZR4V0489BHXVPEHNSUCH8WHYYQDK61U7YLHYYRJIOEQMFS2T7H14YZUQHR4O748IA0HI49AW1RXHKTMP6VSZO2I3JG6FKA7DPIR4CF5JI8TBOJSG3WSRF3VZVKITTYB03KQVP0AWJOA51ZO18JYHV5WIIPNF7YQ0838SJ30TGR4AVSZIYC28XS5DRBNFD8B9EWMLT1MZU19YUDK3WE9R66MJJOBPAZB18RHAQ9L9XZPJXUEBLQM5BA1NIFQ34AP95ZXI6HK5FIFNYGA3SC3ZTCP7W4N:1:1:13:223
  • python main.py -ts "library of babel" VKC1BS1TH7NFIR5G90KBN7HVZR:1:1:30

Run the file from the command line with an action argument. The following arguments are supported:

  • -c or --checkout <addr> Checks out a page of a book. Also displays the page's title.
  • -s or --search <'text'> Search for the text you input.
  • -os or --search <'text'> Search a specific text.
  • -ts or --search <'text'> Search a title.
  • -b or --browse <addr> Open a book, you can switch page '<' or '>'.
  • Page contains: Finds a page which contains the text.
  • Page only contains: Finds a page which only contains that text and nothing else.
  • Title match: Finds a title which is exactly this string. Mind the quotemarks.For a title match, it will only match the first 25 characters. Addresses returned for title matches will need to have a page number added to the tail end, since they lack this.
  • --version Version.
  • --help Prints help message.

Explanation

What was needed for this project was a way to generate seemingly random pages in a near-infinite address space which could also be searched for specific strings.

I realized not early on that what I needed was not a reversible RNG, but in fact an encoding scheme to cleverly encode the page's text in the address of the book. Paired with a seeded RNG for shorter pages, I could reliably generate random pages, but also encode specific text into the page to be generated.

To understand the encoding, you must think of the hex address of the book as a base-36 number and the text of the book as a base-29 number (26 letters plus space, comma, and period). The wall, shelf, volume, and page can be thought of as a base-10 number independent of the hex address. This base-10 number will be referred to as the location.

Specifically, when text is searched for, that text is padded with a random amount of characters on it's front and back side, or in the case of the Page only contains, it's padded with spaces on it's back side. Then, a random number in the range of each location value is calculated.

The page text is then converted from a string to a number. The location number is multiplied by a very large number and is then added to the page text number. Then the new page text number is converted into base-36, and that is the address.

About

Python Library Of Babel implementation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages